From 766e2da4e35872fe02c7b1fd0a4d186c7e839050 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Tue, 2 Mar 2021 11:44:36 -0500 Subject: [PATCH] feat: Added property to ProgramUtils to determine if the application is running as admin --- .../ICD.Common.Utils_NetStandard.csproj | 3 +-- ICD.Common.Utils/ProgramUtils.Standard.cs | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ICD.Common.Utils/ICD.Common.Utils_NetStandard.csproj b/ICD.Common.Utils/ICD.Common.Utils_NetStandard.csproj index d8e8312..bb48453 100644 --- a/ICD.Common.Utils/ICD.Common.Utils_NetStandard.csproj +++ b/ICD.Common.Utils/ICD.Common.Utils_NetStandard.csproj @@ -32,8 +32,6 @@ - - @@ -47,6 +45,7 @@ + diff --git a/ICD.Common.Utils/ProgramUtils.Standard.cs b/ICD.Common.Utils/ProgramUtils.Standard.cs index 784fec1..cc3647c 100644 --- a/ICD.Common.Utils/ProgramUtils.Standard.cs +++ b/ICD.Common.Utils/ProgramUtils.Standard.cs @@ -2,6 +2,7 @@ using ICD.Common.Utils.IO; using System; using System.Reflection; +using System.Security.Principal; using ICD.Common.Properties; namespace ICD.Common.Utils @@ -64,6 +65,19 @@ namespace ICD.Common.Utils { get { return IcdFile.GetCreationTime(PathUtils.Join(PathUtils.ProgramPath, ProgramFile)); } } - } + + /// + /// Returns true if the current executing user is an admin. + /// + [PublicAPI] + public static bool IsElevated + { + get + { + WindowsIdentity current = WindowsIdentity.GetCurrent(); + return new WindowsPrincipal(current).IsInRole(WindowsBuiltInRole.Administrator); + } + } + } } #endif