如何限制多个登录相同的用户C#和Active Directory成员身份

时间:2012-11-22 15:44:59

标签: c# authentication login active-directory asp.net-membership

如何使用AD成员资格和C#防止同一用户多次登录?

我尝试使用MembershipUser.IsOnline,但这不是由AD会员提供商支持的。

这是一段代码:

                MembershipUser muser = Membership.GetUser(model.UserName);
                if(muser.IsOnline)
                {
                    //TODO
                }

但它抓住了这个例子:Active Directory成员资格提供程序不支持“LastLoginDate”

3 个答案:

答案 0 :(得分:0)

不是在AD会员类的帮助下,但仍然:

  • 每次会话开始时将用户的SessionId添加到应用程序。
  • 将用户的SessionId添加到他的cookie

您必须检查SessionId是否匹配的每个请求。

答案 1 :(得分:0)

这似乎是您的活动目录中的配置问题,您可以将网络策略中的缓存凭据设置为0,这样您就不会使用kerberos票证缓存。

然后你必须解决下一个问题,即你在网络中允许多少次登录,本文介绍了一种方法:http://technet.microsoft.com/en-us/magazine/2005.05.utilityspotlight.aspx

答案 2 :(得分:0)

我认为我的情况有点不同,但我觉得同样的原则也适用。我的情况是这样的,我必须确保用户ID一次只从一个设备登录(表单身份验证,顺便说一句,而不是AD)。当用户ID在仍然登录到现有设备的同时尝试登录到另一个设备时,它会在现有设备上终止会话,同时允许他们登录到新设备。我在Stack Overflow的原始帖子上写了一个解决方案:

When the same user ID is trying to log in on multiple devices, how do I kill the session on the other device?

相关问题