2012-02-21 29 views
1

我想設置我的web.config文件重定向到login.cshtml如果一個cookie未設置。我怎樣才能做到這一點?我現在所擁有的還有一些我不明白的行爲。我有:設置web.config文件,如果一個cookie設置

<?xml version="1.0" encoding="utf-8" ?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <system.web> 
     <authentication mode="Forms"> 
      <forms loginUrl="Login.cshtml" name=".ASPXFORMSAUTH"> 
      </forms> 
     </authentication> 
     <authorization> 
      <deny users="?" /> 
     </authorization> 
    </system.web> 
</configuration> 

正在發生的事情是用戶被重定向到

"Account/Login ReturnUrl=%2fdefault.cshtml" 

所以default.cshtml正在呈現,與在它集中放置一個奇怪的登錄頁面?這可能與我的程序的結構做的,但我真的不明白被稱爲是什麼,可能使這個奇怪的HTML?

回答

1

loginUrl應該是會帶你到登錄查看,因爲如果你試圖通過Web瀏覽器導航到它的路徑。其中,如果我有猜測,會是像mywebsite.com/Account/Login。因此,web.config中的相應代碼將爲

<forms loginUrl="~/Account/Login" name=".ASPXFORMSAUTH"> 
</forms> 

這將基於默認路由等等。如果您的網站已修改路線和/或查看引擎覆蓋,您可能會遇到不同的行爲。

0

我覺得這裏的問題是,你是在loginURL,這是一個視圖引用「Login.cshtml」。在MVC中,您不會將用戶路由到視圖(在控制器中選擇該視圖)。您必須將用戶指向路徑/控制器/操作。如這裏的其他帖子中提到,這通常是「〜/帳號/登錄」,如果你使用標準的項目模板(波浪線表示應用程序根目錄)。