簡體   English   中英

如何確定用戶是否具有管理員權限?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM