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