[英]How to find out if user has administrator privileges or not?
我在C#中創建了一個程序,允許您更改Windows 7登錄屏幕的背景。
該程序必須在System32文件夾中創建一個新文件夾,並在那里移動文件。 我在我的個人計算機上沒有問題,但是我在朋友計算機上測試它並拒絕創建目錄。
他的帳戶類型是管理員,但我唯一能想到的是他錯過了我在計算機上啟用的某種特權。
所以我想知道是否有辦法檢查用戶有哪些權限? 或者一種繞過它的方法。 提前致謝!
要檢測到這一點,您可以像這樣獲取WindowsIdentity的對象:
WindowsIdentity identity = WindowsIdentity.GetCurrent();
然后通過以下方式創建WindowsPrincipan的實例:
WindowsPrincipal principal = new WindowsPrincipal(identity);
最后使用像這樣的IsInRole()方法檢查它:
string role = "BUILTIN\\Administrators";
bool IsAdmin = principal.IsInRole(role));
然后,您可以使用IsAdmin變量來確定當前用戶是否為Admin。
來源 - http://csharptuning.blogspot.com/2007/09/detecting-is-current-user-is.html
問題是UAC。 這是一項需要提升的操作。 雖然用戶位於管理員組中,但默認情況下會為該過程提供標准用戶令牌。
解決方案是將requireAdministrator
選項添加到應用程序的清單中,以便應用程序調用UAC提升對話框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.