我有一個應用程序,其中大約20 http generic handler
用於ajax call
。
我已經使用IReadOnlySessionState
訪問我的處理程序中的會話。一切正常。
在通用http處理程序中處理會話超時
但是,當會話過期時,我的處理程序正在返回一些html,因爲它重定向到默認頁面,並且默認頁面的html會在響應中發回。
解決此問題。
我在處理程序檢查會話變量,如果它是空的我已經寫
context.Response.Write("logout")
我在jQuery的阿賈克斯天氣,查看其是否註銷或其他任何東西。
$.ajax({
url: "myhandler.ashx",
contentType: "application/json; charset=utf-8",
success: function (data) { checklogout(data); $("#loading").hide(); },
error: function() { $("#loading").hide(); },
async: false
});
如果是註銷,那麼我已經使用位置重定向到登錄頁面。
我正在使用form-authentication
來驗證用戶。
有沒有更好的方法來檢查和使用jquery-ajax調用重定向到登錄頁面。
這可能會更好從你的處理程序返回一個正確的[HTTP狀態碼](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html),例如* 401 Unauthorized *(也許創建一個基本處理程序,這樣你不重複這個邏輯)。你可以在你的中央AJAX選項('$ .ajaxsetup')中查找這個值,因此只需要在一個地方查看代碼。這是你正在尋找什麼? –