2013-03-25 89 views
0

我們目前正在C#中開發一個實現審計跟蹤的軟件,但我們無法知道哪個用戶在多用戶使用時執行更新/插入/刪除操作。我的用戶表看起來像這樣:監視器登錄多用戶軟件

create table Users(
    userID varchar(20) not null, 
    userPass varchar(20) not null, 
    userFName varchar(25) not null, 
    userLName varchar(25) not null, 
    userMName varchar(25) not null, 
    secretAnswer varchar(40), 
    userStatus int default 0, 
    primary key(userID) 
) 

如果用戶登錄的userStatus檢查,默認爲0,這意味着他/她是不是在登錄時,他/她登錄時,它會被更新爲1,意味着他/她是該軟件的當前用戶。因此,要檢查誰登錄了,我的代碼是

select userID from Users where userStatus = 1 

然後,所有的一切userStatus用戶將被重置爲0,一旦他退出,或者軟件被關閉。但是這個邏輯僅適用於個人用戶。我如何跟蹤實現更新/插入/刪除的用戶?我正在使用C#。我在這裏先向您的幫助表示感謝。

+0

Dustine不能你在當前用戶當前yser使用以下 ''string userName = System.Security.Principal.WindowsIdentity.GetCurrent()。Name;'這將返回'domain \\ username',那麼你所要做的就是分割返回值''\\「'if你需要一個編碼的例子,我可以給你發一個 – MethodMan 2013-03-25 13:20:08

+0

我不熟悉這個過程,先生。你可以請張貼代碼嗎?這對我來說是一個很大的幫助。 – 2013-03-25 13:41:15

+0

我發佈的代碼在本地試用它,你會發現它會根據你的用戶名是你的用戶名是什麼返回你的用戶ID,你可以長期使用你的當前PC或筆記本電腦..如果你需要幫助,請發佈任何其他問題。此外,如果您支持代碼/應用程序,您可以在當前正在進行日誌記錄的項目中進行全局搜索,並存儲任何必需的代碼/變量,您需要將其保存到該代碼/變量中。它的代碼很簡單 – MethodMan 2013-03-25 13:42:56

回答

0

在代碼中寫入日誌之前,您可以跟蹤當前正在調用代碼的用戶,您可以執行此操作並返回當前用戶,以確定代碼中的哪個位置你想將它

var currentUser = System.Security.Principal.WindowsIdentity.GetCurrent().Name.Split(
    new [] {"\\"}, 
     StringSplitOptions.RemoveEmptyEntries)[1]; 

這裏是相同的代碼,你可以看到拆分串入DomainUser

通過記錄
var currentUser2 = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 
var SplitUser = currentUser2.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries); 
var domain = SplitUser[0]; 
var domainUser = SplitUser[1];