在ASP.NET MVC3控制器操作中,我想注销用户并返回401状态码。代码很简单:FormsAuthentication.SignOut在设置响应状态代码时失败
public ActionResult Index()
{
FormsAuthentication.SignOut();
HttpContext.Response.StatusCode = 401;
return null;
}
当我设置状态代码时,用户没有注销。为什么?如果我删除状态代码行,用户将注销,但我不想返回200状态。
这是怎么回事?我如何达到理想的行为?
这是我结束了解决问题:
if (Request.IsAjaxRequest())
{
FormsAuthentication.SignOut();
Response.StatusCode = 401;
Response.Flush();
return null;
}
else
{
FormsAuthentication.SignOut();
return new HttpUnauthorizedResult();
}
这适用于非AJAX请求,但对于AJAX请求无法正常工作。在原始帖子中查看我的解决方案。 – Mark