繁体   English   中英

MVC4中的基本登录/授权

[英]Basic Login / Authorization in MVC4

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

我有一个数据库链接类,可以使用C#为我处理身份验证,这意味着我可以执行以下操作:

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

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

您应该使用基本的Web应用程序模板,它为您提供控制器来编辑用户和使用身份验证。 然后,您将可以允许某些控制器或某些控制器动作。 对于控制器,您只需要在控制器的定义之前放置[Authorize(Roles =“ Admin”)]标记,即可将此操作授予“管理员角色”。

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

在您的web.config中添加:

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

在您的控制器中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM