47

同様の質問がいくつかあることを知っています。しかし、私は1つのことだけを確認したい.

プログラムが管理者として実行されているかどうかだけ知りたいです。セキュリティで保護されたファイルを編集したいので、それを確認したいと思います。ユーザーは管理者である必要はありません。私のアプリケーションが、管理者として実行しているときに編集可能な保護されたファイルを編集する権限を持っているかどうかだけを知りたいです。

4

2 に答える 2

112

これは有効なブール値を返します

using System.Security.Principal;

bool isElevated;
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
于 2011-05-10T16:32:00.040 に答える
12

@atrljoe の回答は、最新の C# を使用してワンライナーになりました。

using System.Security.Principal;

static bool IsElevated => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
于 2015-11-12T23:51:38.847 に答える