我在用户端有一个Windows应用程序,在管理员端有一个连接在局域网中的Web服务......
当用户运行Windows应用程序时,有一个登录表单,当用户登录Web服务时,会调用一行(包含用户的详细信息)动态添加到管理员当前的数据库表中侧。
现在我希望只有指定的用户才能登录,即如果admin给3个用户,那么只有3个用户应该能够登录,如果第4个用户尝试登录,则应该给出错误消息。用户已超过。我尝试使用for循环执行此操作:
for(count=0 ; count<noofusers ; count++)
{
//code for inserting the row dynamically into database
}
但同时在数据库中添加了3行
我希望当1个用户登录时应添加1行,当另一个用户登录时,NOOfUsers应该增加,第二行应该添加等等......最后当第4次用户登录时,他不应该被允许...
任何人都可以帮我解决这个问题吗?
答案 0 :(得分: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人尝试同时登录,我会锁定该支票。