只需查看验证用户的默认代码:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl) {
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) {
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);
}
当用户被验证时,用户将重定向到视图,但在用户PC中没有删除auth cookie
,因为我没有找到相应的代码。
那么告诉我WebSecurity.Login()
函数在内部执行它还是需要编写代码来删除用户pc中的auth cookie
?
答案 0 :(得分:1)
WebSecurity.Login()添加一个名为的会话Cookie:.ASPXAUTH。
来自MSDN网站:(https://msdn.microsoft.com/en-us/library/webmatrix.webdata.websecurity.login(v=vs.111).aspx)
public static bool Login(
string userName,
string password,
bool persistCookie
)
<强>的userName 强> 键入:System.String 用户名。
密码强> 键入:System.String 密码。
<强> persistCookie 强> 键入:System.Boolean (可选)如果为true,则指定cookie中的身份验证令牌应保留在当前会话之外;否则是假的。 默认值为false 。
当用户登录时,ASP.NET会在cookie中设置一个身份验证令牌,让ASP.NET知道用户已登录的后续请求。如果persistCookie为false,则令牌仅有效直到用户关闭浏览器。
您无需添加任何内容。