2011-11-14 144 views
3

我已經創造了C#程序,它允許您更改Windows 7如何找出用戶是否具有管理員權限?

該方案已創建System32文件夾中的新文件夾的登錄界面的背景,也是移動文件存在。我在我的個人計算機上沒有問題,但是我在朋友機器上測試過它,並且拒絕創建該目錄。

他的帳戶類型是管理員,但我能想到的唯一的事情是,他缺少某種特權的,我已經在我的電腦上啓用。

所以我想知道是否有一種方法來檢查什麼權限的用戶?或者一種方法來解決它。提前致謝!

+0

http://stackoverflow.com/questions/1089046/in-net-c-test-if-user-is-an-administrative-user,HTTP://stackoverflow.com/questions/3600322/check-if -the-電流用戶是管理員可能重複的 – Burimi

+0

http://www.davidmoore.info/2011/06/20/how-to-check-if-the-current-user-is-an-administrator-even -if-UAC-是開/ –

回答

3

檢測,你可以得到這樣的WindowsIdentity的對象:

WindowsIdentity identity = WindowsIdentity.GetCurrent(); 

然後通過創建WindowsPrincipan的一個實例:

WindowsPrincipal principal = new WindowsPrincipal(identity); 

,並最終通過IsInRole檢查()之類的方法這個:

string role = "BUILTIN\\Administrators"; 
bool IsAdmin = principal.IsInRole(role)); 

然後你可以使用IsAdmin變量來判斷是否當前用戶是否是管理員。

源 - http://csharptuning.blogspot.com/2007/09/detecting-is-current-user-is.html

2

的問題是UAC。這是一個需要提升的操作。雖然用戶在管理員組中,但默認情況下會爲該進程提供標準的用戶令牌。

的解決方案是將requireAdministrator選項,這樣應用程序調用UAC提升對話框添加到應用程序的清單。

相關問題