我正在寻找一个教程,博客条目,或一些网站背后的技术,自动推送用户(即没有回发)当会话到期时的一些帮助。任何帮助我们都将不胜感激
发布于 2009-01-27 20:03:42
通常,您可以设置会话超时,并且可以另外添加一个页眉,以便将当前页自动重定向到在会话超时之前清除会话的页。
来自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)));
}
}
}SessionExpireDestinationUrl应该链接到一个页面,您可以在该页面上清除会话和任何其他用户数据。
当刷新标题过期时,它会自动将它们重定向到该页面。
发布于 2009-01-27 20:00:29
你不能真的从你的网站上“推送”一个客户。您的站点将响应来自客户端的请求,但仅此而已。
这意味着您需要编写一些客户端(Javascript)来确定用户何时超时,方法可能是将当前时间与用户在站点cookie中的最新时间(每次用户访问站点上的页面时使用当前时间更新)进行比较,如果差异大于一定数量,则重定向。
(我注意到有些人主张只创建一个脚本,该脚本将在页面上显示一段时间后转发给用户。这在简单的情况下是可行的,但如果用户在站点上打开了两个窗口,并且经常使用一个窗口,而另一个窗口不是很多,那么不太多的窗口会突然将用户重定向到转发页面,即使用户一直在站点上。此外,它并不真正与您在服务器端执行的任何会话保持同步。另一方面,它当然更容易编码,如果这足够好,那就太好了!)
发布于 2009-01-27 20:03:03
在部分中,使用元刷新标记,如下所示:
<meta http-equiv="refresh" content="0000; URL=target_page.html">其中0000是会话超时(以秒为单位),target_page.html是要重定向到的页面地址。
https://stackoverflow.com/questions/484964
复制相似问题