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

Mic*_*ael 23 asp.net redirect server-push session-timeout

我正在寻找一个教程,博客条目,或者在会话到期时自动推送用户(即没有回发)的网站背后的技术的一些帮助.任何帮助表示赞赏

TJB*_*TJB 27

通常,您设置会话超时,并且您还可以添加页眉以自动将当前页面重定向到您在会话超时之前清除会话的页面.

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

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)));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

SessionExpireDestinationUrl应链接到清除会话和任何其他用户数据的页面.

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


Bes*_*ska 10

你不能真正从你的网站"推"客户.您的网站将响应客户的请求,但事实确实如此.

这意味着您需要编写一些客户端(Javascript)来确定用户何时超时,可能是通过将当前时间与他们在站点cookie中的最近时间(您使用当前时间更新)进行比较每次用户访问您网站上的网页时的时间,然后在差异大于特定金额时重定向.

(我注意到有些人主张只创建一个脚本,在脚本上一定时间后转发用户.这可以在简单的情况下工作,但如果用户在网站上打开了两个窗口,并且正在使用一个窗口很多,而另一个窗口不那么多,不那么多的窗口会突然将用户重定向到转发页面,即使用户经常在网站上.此外,它并没有真正同步任何会话都可以让你在服务器端保持这种状态.另一方面,编码肯定更容易,如果这样做足够好,那就太棒了!)


dev*_*vio 6

在<HEAD>部分中,使用以下META刷新标记:

<meta http-equiv="refresh" content="0000; URL=target_page.html">
Run Code Online (Sandbox Code Playgroud)

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

  • 你知道吗?我爱你 :) 简单,简单,工作,非常适合像我这样的 asp.net 初学者:) (2认同)