【发布时间】:2014-12-31 04:51:24
【问题描述】:
我在 ASP.NET MVC 4 中使用默认表单身份验证实现。
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
//Assign additional data
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
这很好用。我需要传递每个登录用户的一些附加数据,以供以后使用,而无需再次访问数据库。 (例如:用户角色和角色详细信息)
在不使用 Session 变量的情况下,WebSecurity 中是否有任何实现?
【问题讨论】:
-
如果您想为登录的用户使用角色,那么您可以使用 [ValueNetAuthorize] 属性来装饰,而不是在操作中使用 [AllowAnonymous]。您也可以像这样传递角色权限: [ValueNetAuthorize(Permissions = Roles.View)] 您应该具有角色实体中定义的权限。
标签: c# asp.net asp.net-mvc asp.net-mvc-4 security