ASP.NET将用户从服务器注销

ASP.NET log user out from server

本文关键字:服务器 注销 用户 NET ASP      更新时间:2023-09-26

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

目前,我通过将js设置为重定向到一个注销页面来实现这一点,该页面在点击时将用户注销,15分钟后就会触发。但是没有什么可以阻止用户刷新锁定页面并无限期地重新启动15分钟计时器。我希望服务器也能正常运行,并在指定时间后将其引导出来。时间不必完全匹配:在10秒内就可以了。

那么:有办法做到这一点吗?理想情况下,锁定页面会启动一个服务器端进程,在时间用完后引导用户退出。不知道如何实现这样的东西,如果它甚至是可能的

持久数据存储使用什么?数据库?

我正在编写一个类似的客户端设置,以提醒用户,如果用户没有单击指示他们仍在的按钮,他们将在15分钟后注销。还有两分钟就要开始了。

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

我的第一个检查是保存用户会话令牌的cookie的新鲜度。它的新鲜度在用户每次服务器请求后设置为15分钟。如果cookie已过期,则用户将注销。

另一个是用户最后一次服务器请求的记录。如果时间超过十五分钟,则用户将注销。

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

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

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