在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