请指导如何使用用户ID一次防止多个用户登录?
我搜索了互联网并找到了一些方法,但不知怎的,他们在这些情况下不起作用:
请给我一些建议.
谢谢
haansi
Zha*_*uid 18
我们按照以下方针为此实施了一个系统:
我们选择了基类选项,因为我们有两个级别的身份验证:
您几乎可以在任何系统中找到的主要问题:
InProc会话,则SessionEnd事件永远不会触发,如果您的服务器崩溃,则不会调用事件等.您可以通过我的解决方案找到的问题是:
回应评论
针对您的具体问题:
最基本的,这不会阻止用户共享他们的登录,但会导致他们烦恼,迫使他们继续登录.如果需要,可以为登录过程添加延迟 - 所以如果尝试不同的会话ID在会话超时(默认为20分钟)或其他时间(例如,基于用户在页面上花费的平均时间)登录站点,然后拒绝登录尝试.
KMå*_*Mån 11
可能有几种可能性.快速回复是:
在数据库中保持一个标志; 每次登录/退出时都会更新标志.例如,如果标志已经为真,则每次认证请求都可以拒绝登录请求.
或者,您可以维护Application对象中的用户列表,并使用.Contains它来查看它是否已存在.
- 编辑 -
让我们尝试数据库标志选项; 并假设您有一个名为StillLoggedIn(User)更新日期/时间和标志的方法.
因此,当用户登录时:
对于后续请求,应用程序会调用StillLoggedIn(User);
准备一个不时浏览数据库的Windows服务(如果你有10000个用户,可以说5分钟后).该服务将数据库日期/时间与当前日期/时间进行比较,并将该标记标记为0好像currentTime减去lastUsedTime大于,比如说5分钟.
它可以是数据库和Windows服务之外的任何东西.
| 归档时间: |
|
| 查看次数: |
45470 次 |
| 最近记录: |