首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话超时时的ASP.NET推送重定向

会话超时时的ASP.NET推送重定向
EN

Stack Overflow用户
提问于 2009-01-27 19:56:22
回答 10查看 78.7K关注 0票数 26

我正在寻找一个教程,博客条目,或一些网站背后的技术,自动推送用户(即没有回发)当会话到期时的一些帮助。任何帮助我们都将不胜感激

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-01-27 20:03:42

通常,您可以设置会话超时,并且可以另外添加一个页眉,以便将当前页自动重定向到在会话超时之前清除会话的页。

来自http://aspalliance.com/1621_Implementing_a_Session_Timeout_Page_in_ASPNET.2

代码语言:javascript
复制
namespace SessionExpirePage
{
    public partial class Secure : System.Web.UI.MasterPage
    {
        public int SessionLengthMinutes
        {
            get { return Session.Timeout; }
        }
        public string SessionExpireDestinationUrl
        {
            get { return "/SessionExpired.aspx"; }
        }
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            this.PageHead.Controls.Add(new LiteralControl(
                String.Format("<meta http-equiv='refresh' content='{0};url={1}'>", 
                SessionLengthMinutes*60, SessionExpireDestinationUrl)));
        }
    }
}

SessionExpireDestinationUrl应该链接到一个页面,您可以在该页面上清除会话和任何其他用户数据。

当刷新标题过期时,它会自动将它们重定向到该页面。

票数 28
EN

Stack Overflow用户

发布于 2009-01-27 20:00:29

你不能真的从你的网站上“推送”一个客户。您的站点将响应来自客户端的请求,但仅此而已。

这意味着您需要编写一些客户端(Javascript)来确定用户何时超时,方法可能是将当前时间与用户在站点cookie中的最新时间(每次用户访问站点上的页面时使用当前时间更新)进行比较,如果差异大于一定数量,则重定向。

(我注意到有些人主张只创建一个脚本,该脚本将在页面上显示一段时间后转发给用户。这在简单的情况下是可行的,但如果用户在站点上打开了两个窗口,并且经常使用一个窗口,而另一个窗口不是很多,那么不太多的窗口会突然将用户重定向到转发页面,即使用户一直在站点上。此外,它并不真正与您在服务器端执行的任何会话保持同步。另一方面,它当然更容易编码,如果这足够好,那就太好了!)

票数 11
EN

Stack Overflow用户

发布于 2009-01-27 20:03:03

在部分中,使用元刷新标记,如下所示:

代码语言:javascript
复制
<meta http-equiv="refresh" content="0000; URL=target_page.html">

其中0000是会话超时(以秒为单位),target_page.html是要重定向到的页面地址。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/484964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档