私はいくつかの同様の質問があることを知っています。でもチェックしたいのは一つだけ。
プログラムが管理者として実行されているかどうかを知りたいだけです。保護されたファイルをいくつか編集したいので、確認します。ユーザーは管理者である必要はありません。私のアプリケーションに、管理者として実行しているときに編集可能な保護されたファイルを編集する権限があるかどうかを知りたいだけです。
これは有効なブール値を返します
using System.Security.Principal;
bool isElevated;
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
WindowsPrincipal principal = new WindowsPrincipal(identity);
isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
@atrljoeの回答は、最新のC#を使用して1つのライナーになっています。
using System.Security.Principal;
static bool IsElevated => new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);