我有一个应用程序,其中大约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')中查找这个值,因此只需要在一个地方查看代码。这是你正在寻找什么? –