2011-04-06 43 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人同時嘗試和登錄。