MVC4中的基本登录/授权

时间:2014-03-18 15:26:44

标签: c# asp.net-mvc asp.net-mvc-4

我的MVC4应用程序中有两个控制器,我想要求用户登录才能访问;一个'管理'区域。

我有一个数据库链接类,它在C#中为我处理身份验证,这意味着我可以这样做:

LoginUtility lu = new LoginUtility();
if(lu.Login("username", "password") == true){
   // User is genuine
} else {
   // Login failed
}

我想将其连接到MVC4,以便我可以将[Authorize]属性应用于这两个控制器。

3 个答案:

答案 0 :(得分:0)

您应该使用基本的Web应用程序模板,它为您提供控制器来编辑用户和使用身份验证。然后,您将能够允许某些控制器或控制器的某些操作。 对于控制器,您只需在控制器定义之前放置[授权(Roles ="管理员")]标签,以便将此操作设置为管理员角色。

答案 1 :(得分:0)

我发现做自定义登录逻辑非常痛苦。您需要做的是扩展AuthorizeAttribute,以便您可以在控制器/操作上使用它,并覆盖AuthorizeCore。如果您需要自定义逻辑来从请求中提取用户名和密码,则可以通过在User覆盖中HttpContext上设置OnAuthorization属性来实现此目的。

答案 2 :(得分:-1)

在你的web.config中添加:

<authentication mode="Forms">
  <forms loginUrl="login.aspx" />
</authentication>

在你的控制器中:

LoginUtility lu = new LoginUtility();
if(lu.Login("username", "password") == true){
 FormsAuthentication.SetAuthCookie(...);
}