2013-02-16 103 views
3

如何在提升的.NET應用程序中獲取登錄的用戶SID?我試過WindowsIdentity.GetCurrent()這當然會返回提升進程的管理員。從我可以看到我可能需要使用本地方法來做到這一點,任何人都可以提供更優雅的方式?獲取登錄的用戶SID而不是提升的用戶

+0

這是在服務器上嗎?如果這可能會有所幫助:http://stackoverflow.com/questions/5230441/how-to-get-at-the-current-users-windows-identity – FrostyFire 2013-02-16 23:31:03

+0

不在服務器上。 – Luke 2013-02-16 23:40:07

+0

你可以從註冊表中抓取它。然後比較密鑰 – Greg 2013-02-17 00:50:28

回答

0

調查Greg's建議使用註冊表中:

我發現它出現在提供當前登錄的用戶的信息可靠以下關鍵。該密鑰包含諸如顯示名稱和SID之類的信息。此信息存儲在「HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Authentication \ LogonUI」

此信息在Windows 8上是準確的。我檢查了Windows 7並且包含的​​信息少得多,例如:沒有記錄在用戶SID上。

+0

您可以運行提升的命令提示符進程,以便爲您查詢。您可以將其傳送到文檔並提取使用情況。 – Greg 2013-02-17 12:30:22