我必须实现自动退出功能在我的一个项目,我只是不能找出哪里开始寻找的想法但是 所以.

我需要的是应用程序向用户登录网页,如果用户届会议已经过期。请告诉我为什么应该是我的方法来解决这一要求。

问题的声明: 如果用户离的系统对超过n分钟,在任何给定的日志的实例,该系统应自动登录。

有帮助吗?

解决方案 2

这已经通过以下方式实现的:

1)保存每个请求的时间戳(服务器和AJAX不包括会话确认AJAX请求)发送到服务器到一个会话变种

2)使用AJAX以频繁的间隔经由JS函数轮询服务器并检查会话时间戳和AJAX请求时间之间的时间差异大于所述会话超时VAL大于注销当前用户和返回对于AJAX请求一个bool。

3)重定向当前页面到登录页,如果布尔返回为真。

其他提示

会上的评论意见尽可能多的问题,我不知道如果你之后的东西,将用户登录了一定时间之后,不论的活动,或只是经过一段时间的闲置。

如果你们乐于使用的标准 ASP.NET 机制, 这可以为你做的没有任何重大的工作:

设立了你 会员国提供商.

确保你的 认证部分 定义一loginUrl:

<authentication mode="Forms">
  <forms loginUrl="login.aspx" />
</authentication>

你可以设置一个超时比其他的30分钟的默认使用的"超时"属性 形式的元素:

<authentication mode="Forms">
  <forms loginUrl="login.aspx" timeout="15"/>
</authentication>

这将记录用户出15分钟后的活动在你的网站(无论是与打开浏览器没有javascript"的心跳"或者如果他们花费15分钟的另一网站)。

拒绝访问匿名用户

<authorization>
  <deny users="?" />
</authorization>

然后确保你登录、登记和可能忘记密码的网页被访问的所有用户使用 位置元件:

<location path="Logon.aspx">
  <system.web>
    <authorization>
      <allow users="?"/>
    </authorization>
  </system.web>
</location>
<location path="Register.aspx">
  <system.web>
    <authorization>
      <allow users="?"/>
    </authorization>
  </system.web>
</location>
<!-- etc -->

这种方式,当一个用户身份验证cookie expires他们将被重新定向指定的URL在loginUrl元素形式的网页。


如果你不使用的标准ASP.NET 机制,然后你可能会更好,实现一个"基页"模型。

创建一个新的类继承的系统。网。用户界面。网页,将检查登录的国家的用户,如果他们不是登录/超时然后将它们重定向到你登录网页。

在你的网页都被锁定下来,而不是继承的系统。网。用户界面。页,你继承你的基页类(例的这种设置做类似的东西-检查设置在各页)中可以看到 我的答案在这里


你登录网页将可能需要有一些框架破坏JS在它跳出框架:

if (top!=self.parent){
  top.location=self.parent.location;
}

或者你是说通过按"背面",他们仍然可以看到你的网页,通过浏览器高速缓存?在这种情况下你只需要玩弄缓头在每一页上:

Response.Cache.SetCacheability(HttpCacheability.NoCache);

Ok,那么,在这种情况下你还需要一个JS定时器的对象执行一个位置。替换要你登录网页的-有这样在一个用户控制在每一页上(或者更好的是,在你的主页)自动重新定向后的用户n分:

<script type="text/javascript">
  setTimeout('location.Replace("/login.aspx")', 900000);
</script>

时间在毫秒,那么这将推动它们在15分钟之内,并不需要得到整个s架构中的地方。

你可能还想要看到的阶刷新标记:

<meta http-equiv="refresh" content="900;url=http://example.com/login.aspx" />

这将迫使浏览器以刷新,以登录网页15分钟后(这是在秒)。

既然你不知道从哪里开始,你会发现这个4guys文章有用:的 http://www.4guysfromrolla.com/webtech/110701-1.shtml

修改

听起来就像是 jQuery的计时器如果你想后重定向到URL可能是有用已知的时间段已经过去(即,在会话期满时段)。

希望这有助于。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top