我正在使用ASP.NET Identity登录的应用程序中的注销功能。我可以成功登录,但是当我注销然后再次尝试登录时,收到以下消息:
The provided anti-forgery token was meant for a different claims-based user than the current user.
这是我的注销代码:
public ActionResult Logout()
{
SignInManager.Logout();
return View("Index");
}
**SignInManager.cs**
public void Logout()
{
AuthenticationManager.SignOut();
}
用户按下注销按钮后,将进入登录屏幕。网址仍显示“http://localhost:8544/Login/Logout”。由于我们在登录屏幕上,因此也许应该只说“http://localhost:8544/Login”。
最佳答案
尝试这个:
public ActionResult Logout()
{
AuthenticationManager.SignOut();
Session.Abandon();
return RedirectToAction("Index");
}
这将重新加载您的登录页面,这将为您提供一个新的CSRF token 。
关于asp.net - 反伪造 token 是针对其他基于声明的用户的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36224300/