|
1
7
一些即时消息传递者(只能与一个登录的端点一起工作)有一种很好的方式来解决此类冲突。它们显示的信息
(如果是网络应用,那么
给你一个选择
这在技术上是最具挑战性的,但绝对是最友好的方式——它确保用户只有一个会话在运行,而不会太明显。也没有恶意用户因为忘记在工作中注销而无法登录,等等。 |
|
|
2
2
我相信暴雪的魔兽世界能很好地实现这一点。 基本上,如果您在已经登录后尝试登录游戏,则第一个连接将被启动。 这基本上只需要将会话存储在数据库中。当您存储会话数据时,也存储一个用户名。当用户登录时,删除任何具有该用户名的会话记录,然后为登录人员创建一个新的会话记录。 我不建议阻止“新”用户尝试登录,因为用户不想仅仅因为忘记注销而返回到他们拥有的另一台计算机(可能有几英里远)。 你可能还需要考虑其他一些事情。像sessionid劫持之类的。如果用户只使用正确的sessionid在其系统上放置一个cookie(这始终是可能的),那么他们可能会在多台计算机上使用相同的会话。在这种情况下,您可能希望保留一个IP字段,用于保存当前登录的数据。 |
|
|
3
2
解决这个问题的一个典型方法是使用 非活动超时。此系统强制每个帐户的最大登录次数,同时考虑到上述情况:用户离开办公室而不注销,并尝试从其主工作站登录。 这是这样一个系统的一般路线
请注意,上述一般原则可能会有一些变化,特别是:
独立于lm逻辑本身,记住 所有与lm相关的事件的日志 (登录、注销、非活动会话“终止”、拒绝登录…)。此类日志应包括日期/时间、IP地址和其他相关信息,并且在解决与被盗密码等相关的问题时非常有用。此类日志还包含无价的营销,例如查找所有似乎座位太少的账户(因此可能购买一些ugrade),或查找风险账户等。 还有一些考虑
|
|
|
4
1
阻止第一次登录。如果你在家登录,那么在工作中,你不想被阻止,因为这是一个合法的方法。总是允许当前登录,并删除旧的登录。 |
|
|
5
1
我建议跟踪每个用户是否登录,并允许第二次登录结束第一次登录的会话。 然后,允许会话结束的用户在错误启动时报告可能的欺诈活动。 |
|
|
6
0
不要试图通过计算用户拥有活动会话的IP地址数来实现这一点-有些用户可能落后于负载平衡代理。 解决方案是编写您自己的会话处理程序(可能最容易使用数据库后端),并且只允许一个用户拥有一个打开的会话。 您可能需要调整会话垃圾收集和不活动状态。您还应该确保您的系统不受会话固定攻击的影响。 C. |
|
|
7
0
在安全性方面,这正是您要了解的内容,无论如何,最好将会话数据存储在数据库中。尤其是在共享服务器上。 就允许哪个用户使用,哪些用户可以删除,这是你要判断的问题。我想你可以有一些二级身份证明,以确保他们是帐户的真正所有者。实际上注册的那个人。 |
|
|
8
0
我以前在一个具有相同要求的Web应用程序中做过这项工作。我是这样做的: 当有人登录时,您将生成一个guid并将其存储在数据库中,附加到用户。您还可以将这个相同的GUID存储在会话cookie中。 每次登录用户访问您站点上的任何页面时,您都会检查他们的cookie guid,并将其与数据库中分配给他们的guid进行比较。如果这些guid不匹配,那么它们已经登录到另一台机器上,而您将它们从该会话中注销。 这种方法非常有效。 |