我试图在他/她按下按钮时注销用户。这是被调用的方法。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
{
using (var log = new Log("AccountController.LogOff()"))
{
AuthenticationManager.SignOut();
return RedirectToAction("Index", "Home");
}
}
当用户按下按钮时,方法会被命中,但用户永远不会被注销。没有例外,用户根本就没有退出。
答案 0 :(得分:0)
尝试以下代码
public ActionResult Logoff()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index");
}
答案 1 :(得分:0)
LogOff函数具有[HttpPost]和[ValidateAntiForgeryToken]标记。所以它正在等待发送AntiForgeryToken的表单。所以你必须为这种情况设置你的按钮。
您的注销按钮在视图中必须如下所示:
@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
}