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

asp.net – 如何在会话超时或结束时注销用户

发布时间:2020-12-15 22:45:23 所属栏目:asp.Net 来源:网络整理
导读:当会话结束或到期时,注销用户的最佳方式是什么? 感谢任何帮助. 解决方法 它真的取决于您要查找的所需功能.我要假设你使用FormsAuthentication. 您需要关注两个独立的事项:会话和FormsAuthentication cookie.除非我错了,否则这两个都有不同的超时. 如果您遇
当会话结束或到期时,注销用户的最佳方式是什么?

感谢任何帮助.

解决方法

它真的取决于您要查找的所需功能.我要假设你使用FormsAuthentication.

您需要关注两个独立的事项:会话和FormsAuthentication cookie.除非我错了,否则这两个都有不同的超时.

如果您遇到的问题是会话超时,但用户仍然进行身份验证,则可以尝试以下组合:

1:确保身份验证cookie与会话具有相同的超时值:

<authentication mode="Forms"><forms ... timeout="20" ... ><authentication>
<sessionState ... timeout="20" ... />

2:在您的Page_Load事件中,检查会话是否超时:

if (context.Session != null && Context.Session.IsNewSession == true &&
    Page.Request.Headers["Cookie"] != null &&
    Page.Request.Headers["Cookie"].IndexOf("ASP.NET_SessionId") >= 0)
{
    // session has timed out,log out the user
    if (Page.Request.IsAuthenticated)
    {
        FormsAuthentication.SignOut();
    }
    // redirect to timeout page
    Page.Response.Redirect("/Timeout.aspx");
}

(有关检测会话超时的信息,请参见http://www.eggheadcafe.com/articles/20051228.asp)

如果您想要更愉悦的用户体验,您可以使用javascript在X分钟后启动某种模式的UI弹出窗口.这个弹出窗口将简单地允许用户启动按钮单击,这将触发服务器上的AJAX回发,从而扩展其身份验证和会话cookie,而无需重新加载页面.我从来没有实现过,但是看, this guy made an ASP.NET AJAX control !

(编辑:李大同)

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

    推荐文章
      热点阅读