2011-04-06 45 views
0

我必须在用户侧一个Windows应用程序,并在其连接在局域网管理员侧的Web服务...如何控制no。的用户登录?

当用户运行Windows应用程序有一个登录表单,并在用户登录时在

进行Web服务调用,并将一行(包含用户的详细信息)动态添加到管理端的数据库表中。

现在我想,只有指定的用户应该能够登录也就是说,如果管理员给3个用户则只有3用户应该能够登录,如果第4用户试图登录它应该给一个错误信息,没有。的用户已经超过。我试图for循环做到这一点使用为:

for(count=0 ; count<noofusers ; count++) { //code for inserting the row dynamically into database }

但这里同时3行被添加到数据库中

我想,当1个用户登录1行应加入,当其他用户登录在NOOfUsers应增加应添加第二行等等......最后当第四用户登录他不应该被允许...

任何人都可以帮我这个问题?

+2

为什么不只是添加一个新行,当用户登录,然后当另一个用户试图登录,检查有多少行的表?如果已经有3行,则显示错误消息。 – 2011-04-06 11:20:50

+0

如果你还没有,你需要考虑如何计算用户不再登录。简单的一个当然是一个注销按钮,但如果一个用户的应用程序在没有运行它的登录代码的情况下被终止,你最终可能会幻像登录需要清除。 – Chris 2011-04-06 11:35:56

回答

0
private static object _lock = new object(); 

public void LogIn(string username, string password) 
{ 
    lock(_lock) 
    { 
     if (NumLoggedInUsers() >= MaxNumUsers()) 
     { 
      return "Sry dudez, too many userz"; 
     } 
    } 
} 

我会离开NumLoggedInUsers()和MaxNumUsers作为练习留给读者。

注意,我锁定,登记入住的情况下,2人同时尝试和登录。