web-dev-qa-db-ja.com

C#管理者権限-チェック

私はいくつかの同様の質問があることを知っています。でもチェックしたいのは一つだけ。

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

39
Hooch

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

using System.Security.Principal;

bool isElevated;
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
90
atrljoe

@atrljoeの回答は、最新のC#を使用して1つのライナーになっています。

using System.Security.Principal;

static bool IsElevated => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
6
Bryan Legend