我在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);
}
这很好用。我需要传递每个登录用户的一些额外数据,以便以后使用,而无需再次访问数据库。 (例如:用户角色和角色详细信息)
WebSecurity中是否有任何实现可以在不使用Session变量的情况下执行此操作?
答案 0 :(得分:0)
通常,您可以使用代码
在用户注册时存储其他值WebSecurity.CreateUserAndAccount("username", "somepassword", new{DateCreated=DateTime.Now});
您可以在匿名对象中添加多个属性
WebSecurity.Login
只需2个参数即可登录现有用户
答案 1 :(得分:0)
您可以将此方法用于其他值和参数websecurity方法:
WebSecurity.CreateUserAndAccount(model.UserName, model.Password,
propertyValues: new
{
NameFamily = model.NameFamily,
PostCode = model.PostCode,
Address = model.Address,
Phone = model.Phone,
Lat = model.Lat,
Lng = model.Lng
});