C# administrator privilege - checking

I know that there are some similar questions. But I want to check only ONE thing.

I only want to know if program is running as administrator. I want to check that because I want to edit some secured files. User don't have to be administrator. I only want to know if my application has rights to edit some secured files that are editable when running as Administrator.


Solution 1:

This will return a bool valid

using System.Security.Principal;

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

Solution 2:

Here's @atrljoe's answer turned into a one liner using the latest C#:

using System.Security.Principal;

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