我的ASP MVC(1.0)網站有一個默認的登錄頁面(基於OpenId - 但不應該有所不同)。當AuthorizedAttribute位於Action/Controller上時它工作正常。對未經驗證的用戶和AJAX調用的不同響應
但是,我也有AJAX請求。這是我與他們無關:
if (Request.IsAjaxRequest())
{
if (Request.IsAuthenticated)
{
// Authenticated Ajax request
}
else
{
// Non-authenticated Ajax request.
Response.StatusCode = (int)HttpStatusCode.Unauthorized;
return Json(new { response = "AUTHENTICATION_FAILED" });
}
}
的問題是,如果我設置Response.StatusCode未經授權,請求重定向到我的登錄頁面,這是不好的Ajax請求。
對此問題的任何建議表示讚賞。
聽起來不錯。將嘗試它,謝謝。無論如何,MVC 2或3都會改變嗎? – Khash 2010-10-22 22:20:03
不幸的不是。在MVC2和3中同樣如此。我將它作爲MVC團隊的一個問題提出來,但FormsAuthentication不在他們的責任範圍內 – Clicktricity 2010-10-23 08:24:31