加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 处理通用http处理程序中的会话超时

发布时间:2020-12-16 03:48:43 所属栏目:asp.Net 来源:网络整理
导读:我有一个应用程序,其中约20个http通用处理程序用于ajax调用. 我已经使用IReadOnlySessionState来访问我的处理程序中的会话.一切正常. 但是当会话到期时,我的处理程序返回一些html,因为它重定向到默认页面,并且默认页面的html在响应中被发回. 要克服这个问题.
我有一个应用程序,其中约20个http通用处理程序用于ajax调用.
我已经使用IReadOnlySessionState来访问我的处理程序中的会话.一切正常.

但是当会话到期时,我的处理程序返回一些html,因为它重定向到默认页面,并且默认页面的html在响应中被发回.

要克服这个问题.
我已经检查了处理程序中的会话变量,如果它是null,我已经写了

context.Response.Write("logout")

我检查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
         });

如果它是注销,那么我使用位置重定向到登录页面.
我正在使用表单身份验证来验证用户身份.

有没有更好的方法来检查和使用jquery-ajax调用重定向到登录页面.

解决方法

您的处理程序位于一个目录中,该目录通过asp.net的身份验证自动控制.

我应该做的是不要让web.net上的设置通过asp.net身份验证自动控制所以对处理程序的调用将完成以太用户不在以太网中登录,并且在处理程序内我会检查,如果调用该处理程序的用户具有会话和身份验证.

然后,在用户没有读取该处理程序的身份验证的情况下,我将一个简单的标志返回到我的ajax调用,然后识别并进行重定向,例如:

$.ajax({
    url: "myhandler.ashx",success: function (data) 
    { 
        if(data.redirectToLogin == true)
        {
            window.location = "/login.aspx"
        }
        else
        {
            // do the rest job
        }
    },error: function () 
    { 
        $("#loading").hide(); 
    }
 });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读