2010-10-31 95 views
0

我是ASP.NET MVC 2的新手,遇到了一個簡單的問題。ASP.NET MVC2全局認證

事情是,我想強制用戶登錄查看我的網站。這意味着當用戶請求Home.Index或任何其他Controller.Action時,我應該檢查用戶是否已登錄,如果沒有,請將請求重定向到Auth.LogIn。

我可以在每個控制器的每個Action中檢查授權,但我認爲應該有一些更優雅的方法。

所以。在那兒?

回答

2

使用[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屬性是控制器的動作若沒登錄的用戶重定向裏面以下的部分。

+0

感謝一個快速的答案。儘管如此,我還是不清楚[Authorize]是如何工作的以及它如何考慮加載哪個視圖。 – Paul 2010-10-31 23:16:55

+0

@Paul:查看我的回答更新詳情 – Lorenzo 2010-10-31 23:21:07

+0

現在有道理。非常感謝! – Paul 2010-10-31 23:24:21