ASP.NET日志用户从服务器输出

时间:2013-09-03 12:58:31

标签: javascript asp.net

我正在使用ASP.NET构建一个Web应用程序,安全性要求非常严格;目前,如果用户闲置2分钟,应用程序将锁定。每个页面都有一个javascript计时器注册,从页面加载开始,并在2分钟后重定向到锁定页面。当锁定页面加载到服务器上时,它将用户标记为数据库中的“锁定”,以阻止他们在不解锁的情况下导航。锁定页面还有一个设置为15分钟的计时器,之后用户应该完全注销。

目前我通过将js设置为重定向到注销页面来实现这一点,该注销页面在击中时将用户注销,并在15分钟后触发。但是没有什么可以阻止用户刷新锁定页面并无限期地重新启动15分钟计时器。我希望服务器也能在指定的时间后打开并启动它们。时间不必完全匹配:彼此之间的10秒钟就可以了。

所以:有办法做到这一点吗?理想情况下,锁定页面将启动服务器端进程,该进程在时间用完后将用户引导出去。如果可能的话,不确定如何实现这样的事情

1 个答案:

答案 0 :(得分:1)

您使用什么来持久存储数据?一个数据库?

我正在编写一个类似的客户端设置来提醒用户,如果他们没有点击一个表示他们仍在那里的按钮,他们将在十五分钟后注销。它将从两分钟开始。

这只是我经理想要的便利。我已经进行了服务器端检查,以确保在超过时间限制时关闭用户。实际上,有两张支票。

我的第一个检查是持有用户会话令牌的cookie的新鲜度。在用户提出每个服务器请求后,其新鲜度设置为十五分钟。如果cookie已过期,则用户将被注销。

另一个是用户上次服务器请求的记录。如果超过十五分钟,则用户退出。

如果我是你,我会使用第二种方案。

在我的数据库中,我会创建一个锁定表,其中包含两列,指示用户是否被锁定以及锁定的时间。十五分钟过后,如果用户尚未完成清除锁定的过程,则注销用户。如果他们明确执行该过程,请清除锁定记录。这样,只是刷新不会清除持有锁定时间的数据库列。但它可以让你检查十五分钟是否已经过去。

如果允许锁定激活时间为空,则可以将两列压缩为一列。但我更喜欢有一个列明确说明锁定是否有效。您还可以将列添加到现有用户数据库。