2014-06-28 35 views
1

我有一個c#程序連接到數據庫,並在我有SalesPersonID(數字爲示例124547)數據庫中。我有多個用戶帳戶的窗口。有沒有辦法將登錄窗口連接到C#程序,以便它「知道」當前正在使用哪個SalesPersonID。它應該像這樣工作:我連接到我的Windows帳戶(約翰布萊克,通過用戶名和密碼),現在即時通訊工作在我的程序(我賣的東西)。當我進行銷售時,程序應該會自動知道哪個用戶(基於我的Windows登錄),它「知道」我的數據庫中有哪個SalesPersonID,以便與SalesRecords的數據庫自動更新爲我的SalesPersonID號碼。我希望我很清楚自己想做什麼。我不知道該如何開始或者甚至有可能。謝謝。連接Windows登錄與C#程序?

回答

2

是的,這是可能的。您可以從系統中獲取當前的Windows登錄用戶名:

string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 

請注意,如果你在一個領域,這可能是域\用戶名格式。

接下來,在您的數據庫中,您將創建一個表(或使用現有的用戶表)來存儲每個用戶的Windows登錄名。喜歡的東西 -

UserId  WindowsLoginName 
------------ ------------------ 
55   SALES\JohnBlack 

(假設你的登錄名是「JohnBlack」,你在一個名爲「銷售」的領域,這是映射到用戶表列在您的帳戶有「55」的ID值 - 只是假設所有這一切)。

在你的程序中所有你需要做的是查找「username」的(如上)的當前值表中的「WindowsLoginName」列,並使用相關標識值:)

+0

感謝您的幫助,但我不知道鋤頭要做到這一點。我必須使用現有的用戶表,並在那裏我應該有一個主鍵是社會安全號碼單獨的名字和姓氏。我的Windows登錄是PC2 \ John,它已被添加到SQL Server。問題是如何連接一個示例PC2 \ John與表中的主鍵,他的名字分爲姓和名。我不知道如何映射 – user3613744

+0

我有一個用戶叫我PC2 \約翰在我的登錄文件夾中的SQL服務器(這是與我的Windows帳戶連接)。我必須以某種方式將其映射到我的SalesStaff表中的UserID並能夠從我的c#程序中取出他的ID。舉個例子,我有一個程序來爲購買發出賬單,並且它已連接到數據庫。當我按「打印帳單」按鈕時,它應該打印出帳單上的用戶ID號碼,我應該從服務器上獲取。因此,如果John登錄到Windows,那麼他的用戶ID應該是14546,對於Jack,例如是345565。 – user3613744

+0

我看到這已被標記爲答案,但你是否得到這個工作?讓我知道你是否仍然需要幫助。 –