保护ASP.NET应用程序使用登录次数限制

时间:2011-03-23 14:39:04

标签: asp.net licensing login-control

我正在尝试找到一个解决方案来控制asp.net应用程序上的登录次数。 我需要在客户端服务器中安装该应用程序,并设置许可证数量。例如只允许10个用户访问该应用。

每当有人尝试登录时,我都需要检查登录的用户数量,与允许的总数进行比较,然后授权该用户继续登录。

我尝试使用证书,但我看不到在哪里将登录用户数与允许用户的最大数量相匹配。

另外我想使用IP地址作为标识符,然后如果我打开3个浏览器窗口,它只计算一个用户登录。

基本上,此Web应用程序将通过许可证销售。我们需要控制每台计算机的登录,而不是每个用户,并在达到登录限制时阻止登录。

如果我不清楚说明,请原谅我。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

我要做的是使用global.asax文件并在session_start中递增计数器并在session_end上递减。 由于会话存储在cookie中,因此同一台计算机上的多个会话只创建一个会话。

以下是global.asax文件的一个很好的参考: http://aspalliance.com/1114_Understanding_the_Globalasax_file.3

答案 1 :(得分:0)

我会使用Session对象中的SessionID作为键,我将它与登录用户的UserID一起存储在数据库或某种后备存储中。我在global.asax中使用Session_End来删除任何会话到期的上述记录,并在任何注销函数中删除它们。您应该发现计算您拥有的活动会话数非常简单,并确认它不是同一用户再次登录,如果允许的话。

答案 2 :(得分:0)

如果您使用Membership API,我会使用Membership.GetNumberOfUsersOnline方法来确定活跃用户的数量。

我认为这个数字只计算您已经过身份验证的用户数量,因此可以安全地在您的方案中使用。