我正在尝试找到一个解决方案来控制asp.net应用程序的登录次数。我需要在客户端服务器上安装应用程序,并设置许可证的数量。例如,只允许10个用户访问该应用程序。
每次有人尝试登录时,我需要检查有多少用户登录,与允许的总数比较,然后授权该用户继续。
我尝试使用证书,但我不知道在哪里可以将登录用户数与允许的最大用户数相匹配。
此外,我想使用IP地址作为标识符,然后如果我打开3个浏览器窗口,它只有一个用户登录。
基本上,这个web应用程序将通过许可证销售。我们需要控制每台计算机的登录次数,而不是每用户的登录次数,如果达到登录限制,则阻止登录。
如果我的描述不清楚,请原谅。
谢谢你的帮助。
发布于 2011-03-23 22:46:45
我将使用Session对象中的SessionID作为键,并将其与登录用户的UserID一起存储在数据库或某种后备存储中。我将在global.asax中使用Session_End删除任何会话到期时的上述记录,并在任何注销函数中删除它们。您应该会发现,计算活动会话的数量并确认不是同一个用户再次登录是相当简单的,如果允许的话。
发布于 2011-03-23 22:46:22
我要做的是使用global.asax文件,在session_start中递增计数器,在session_end中递减。由于会话存储在cookie中,因此同一台计算机上的多个会话仅创建一个会话。
下面是global.asax文件的一个很好的参考:http://aspalliance.com/1114_Understanding_the_Globalasax_file.3
发布于 2011-03-23 22:52:44
如果您使用的是Membership API,我将使用Membership.GetNumberOfUsersOnline方法来确定活动用户数。
我相信这个数字只计算您已经验证的用户数,所以在您的场景中使用它是安全的。
https://stackoverflow.com/questions/5406905
复制相似问题