0
我是ASP.NET MVC 2的新手,遇到了一個簡單的問題。ASP.NET MVC2全局認證
事情是,我想強制用戶登錄查看我的網站。這意味着當用戶請求Home.Index或任何其他Controller.Action時,我應該檢查用戶是否已登錄,如果沒有,請將請求重定向到Auth.LogIn。
我可以在每個控制器的每個Action中檢查授權,但我認爲應該有一些更優雅的方法。
所以。在那兒?
我是ASP.NET MVC 2的新手,遇到了一個簡單的問題。ASP.NET MVC2全局認證
事情是,我想強制用戶登錄查看我的網站。這意味着當用戶請求Home.Index或任何其他Controller.Action時,我應該檢查用戶是否已登錄,如果沒有,請將請求重定向到Auth.LogIn。
我可以在每個控制器的每個Action中檢查授權,但我認爲應該有一些更優雅的方法。
所以。在那兒?
使用[Authorize]
屬性。
您可以將它放在您要檢查身份驗證的任何操作之前。如果你將它放在控制器類控制器的每一個動作都會受到認證
例
[Authorize]
public class MyController : Controller {
}
或
public class MyController : Controller {
[HttpGet]
[Authorize]
public ActionResult Index()
{
return View();
}
}
的授權屬性只檢查,如果用戶已被記錄或不。他在web.config
文件中定義了他重定向用戶的登錄視圖。如果你檢查你的web.config,你會發現喜歡的System.Web標籤
<authentication mode="Forms">
<forms loginUrl="~/Login/LogOn" name=".td_gsl_login_cookie" timeout="30"
slidingExpiration="true"/>
</authentication>
的loginUrl
屬性是控制器的動作若沒登錄的用戶重定向裏面以下的部分。
感謝一個快速的答案。儘管如此,我還是不清楚[Authorize]是如何工作的以及它如何考慮加載哪個視圖。 – Paul 2010-10-31 23:16:55
@Paul:查看我的回答更新詳情 – Lorenzo 2010-10-31 23:21:07
現在有道理。非常感謝! – Paul 2010-10-31 23:24:21