我知道有一些類似的問題。 但我只想檢查一件事。C#管理員權限 - 檢查
我只是想知道,如果程序以管理員身份運行。 我想檢查一下,因爲我想編輯一些安全文件。 用戶不必是管理員。我只想知道我的應用程序是否有權編輯某些以管理員身份運行時可編輯的受保護文件。
我知道有一些類似的問題。 但我只想檢查一件事。C#管理員權限 - 檢查
我只是想知道,如果程序以管理員身份運行。 我想檢查一下,因爲我想編輯一些安全文件。 用戶不必是管理員。我只想知道我的應用程序是否有權編輯某些以管理員身份運行時可編輯的受保護文件。
這將返回一個bool有效
using System.Security.Principal;
bool isElevated;
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
WindowsPrincipal principal = new WindowsPrincipal(identity);
isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
+1,因爲它甚至可以在Linux(Mono)上運行。以root身份/通過sudo運行時爲您提供真實性。默認用戶爲false。 – MrPixelDream 2015-12-20 15:50:45
我認爲你應該處理'identity',因爲它是'IDisposable'。 – Harry 2017-02-05 07:27:07
@Harry我認爲你做的答案之前的評論被編輯包'的'using'阻止identity'? – Manuzor 2017-08-12 08:42:36
這裏的@採用了最新的C#atrljoe的回答變成了一個襯墊:
using System.Security.Principal;
static bool IsElevated => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
的[我怎麼能知道我的進程正在運行
可能重複作爲管理員?](http://stackoverflow.com/questions/509292/how-can-i-tell-if-my-process-is-running-as-administrator) – 2011-05-10 16:32:03
我只是用Google搜索這個問題,它看起來像我在3年前問過它。很高興知道。感謝Google。 – Hooch 2015-04-22 09:57:22