शेख*_*ेखर 6 asp.net session httphandler form-authentication
我有一个应用程序,其中约20个http generic handler用于ajax call.
我用IReadOnlySessionState我的处理程序访问会话.一切正常.
但是当会话到期时,我的处理程序返回一些html,因为它重定向到默认页面,并且默认页面的html在响应中被发回.
要克服这个问题.
我已经检查了处理程序中的会话变量,如果它是null,我已经写了
context.Response.Write("logout")
Run Code Online (Sandbox Code Playgroud)
我检查jQuery ajax天气它是注销或其他任何东西.
$.ajax({
url: "myhandler.ashx",
contentType: "application/json; charset=utf-8",
success: function (data) { checklogout(data); $("#loading").hide(); },
error: function () { $("#loading").hide(); },
async: false
});
Run Code Online (Sandbox Code Playgroud)
如果它是注销,那么我使用位置重定向到登录页面.
我form-authentication用来验证用户.
有没有更好的方法来检查和使用jquery-ajax调用重定向到登录页面.
您的处理程序位于由 asp.net 身份验证自动控制的目录中。
我应该做的是不要通过在 web.config 上设置来自动控制 asp.net 身份验证,以便对处理程序的调用将在用户登录时完成,并且在处理程序内我将检查这一点,调用该处理程序的用户是否具有会话和身份验证。
然后,如果用户没有身份验证来读取该处理程序,我将一个简单的标志返回到我的 ajax 调用,然后识别并进行重定向,例如:
$.ajax({
url: "myhandler.ashx",
contentType: "application/json; charset=utf-8",
success: function (data)
{
if(data.redirectToLogin == true)
{
window.location = "/login.aspx"
}
else
{
// do the rest job
}
},
error: function ()
{
$("#loading").hide();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |