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

c# – 从asp.net中的不同浏览器标签识别登录的用户

发布时间:2020-12-15 06:45:41 所属栏目:百科 来源:网络整理
导读:我有一个在asp.net上登录选项的网站. 如果我在两个浏览器选项卡中打开网站,并使用相同的用户帐户登录,并在两个选项卡中导航到主屏幕,现在我已从一个选项卡登录,并再次登录同一个选项卡,之后点击第二个选项卡, 我如何区分我从第一个标签或第二个标签从代码背
我有一个在asp.net上登录选项的网站.

如果我在两个浏览器选项卡中打开网站,并使用相同的用户帐户登录,并在两个选项卡中导航到主屏幕,现在我已从一个选项卡登录,并再次登录同一个选项卡,之后点击第二个选项卡,

我如何区分我从第一个标签或第二个标签从代码背后发送请求?

如果请求是从第二个选项卡,我需要导航到应用程序登录屏幕.我该怎么办?

在我的主页上,我添加了逻辑

if (Session["UserID"] == null)
{
   Response.Redirect("Login.aspx");
}

但是问题是当我从第一个选项卡注销并再次登录时,在第二个选项卡刷新之后,Session [“UserID”]不为空,因此它将保留在那里.但是我需要重定向登录页面.我可以实现这个??

解决方法

我可以建议您使用JavaScript和Ajax Post进行重定向.我用它自己,找到可靠,满足需要.我仍然认为可能会有更好的方法来做到这一点.但是现在这样做会做你的工作.

下面的代码检查选项卡焦点/焦点丢失,并调用模糊和焦点上的Csharp代码.

<script type="text/javascript">
        //divClearMessages
        $(window).on("blur focus",function (e) {
            var prevType = $(this).data("prevType");


            if (prevType != e.type) {   //  script for Please Come Back
                switch (e.type) {
                    case "blur":
                        // Use this if you want to check something after user changes tab
                    case "focus":
                        $.ajax({
                            type: "POST",url: "main.aspx/CheckIfSessionIsNull",// Call here the Csharp method which checks the session and redirect user
                            contentType: "application/json; charset=utf-8",dataType: "json",success: function (retValue) {
                                // Do something with the return value from.Net method
                            }
                        });
                        break;
                }
            }

            $(this).data("prevType",e.type);
        })
    </script>

在代码后添加这个方法:(记得添加[WebMethod]属性)

[System.Web.Services.WebMethod]
    public static void CheckIfSessionIsNull()
    {
       if (System.Web.HttpContext.Current.Session["UserId"] == null)
          HttpContext.Current.Response.Redirect("Login.aspx");
    }

(编辑:李大同)

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

    推荐文章
      热点阅读