diff --git a/src/Lithnet.CredentialProvider.UnitTests.x64/V1HeaderTests.cs b/src/Lithnet.CredentialProvider.UnitTests.x64/V1HeaderTests.cs index a8d3126..abf486c 100644 --- a/src/Lithnet.CredentialProvider.UnitTests.x64/V1HeaderTests.cs +++ b/src/Lithnet.CredentialProvider.UnitTests.x64/V1HeaderTests.cs @@ -65,7 +65,7 @@ namespace Lithnet.CredentialProvider.UnitTests Assert.AreEqual( ConsentUIFlags.SecureDesktop | ConsentUIFlags.Unknown3, d.Flags); Assert.AreEqual(3, d.SessionId); Assert.AreEqual((IntPtr)0x0, d.HWnd); - Assert.AreEqual(ConsentUIElevationReason.PackagedApp, d.ElevationReason); + Assert.AreEqual(ConsentUIElevationReason.Msix, d.ElevationReason); Assert.AreEqual(ConsentUIPromptType.Credentials, d.PromptType); Assert.AreEqual("\"C:\\Program Files\\WindowsApps\\Microsoft.MSIXPackagingTool_1.2023.807.0_x64__8wekyb3d8bbwe\\MsixPackageTool.exe\" ", d.CommandLine); Assert.AreEqual("C:\\Program Files\\WindowsApps\\Microsoft.MSIXPackagingTool_1.2023.807.0_x64__8wekyb3d8bbwe\\MsixPackageTool.exe", d.ExecutablePath); @@ -84,7 +84,7 @@ namespace Lithnet.CredentialProvider.UnitTests Assert.AreEqual(ConsentUIFlags.SecureDesktop | ConsentUIFlags.AutoElevationOther | ConsentUIFlags.InWindowsDirectory, d.Flags); Assert.AreEqual(3, d.SessionId); Assert.AreEqual((IntPtr)0x00000000000903c2, d.HWnd); - Assert.AreEqual(ConsentUIElevationReason.CLSID, d.ElevationReason); + Assert.AreEqual(ConsentUIElevationReason.Clsid, d.ElevationReason); Assert.AreEqual(ConsentUIPromptType.Credentials, d.PromptType); Assert.AreEqual(new Guid("{3ad05575-8857-4850-9277-11b85bdb8e09}"), d.ClsId); Assert.AreEqual("C:\\Windows\\system32\\windows.storage.dll", d.ComComponentPath); diff --git a/src/Lithnet.CredentialProvider.UnitTests.x64/V2HeaderTests.cs b/src/Lithnet.CredentialProvider.UnitTests.x64/V2HeaderTests.cs index 0417bd3..d32e3f3 100644 --- a/src/Lithnet.CredentialProvider.UnitTests.x64/V2HeaderTests.cs +++ b/src/Lithnet.CredentialProvider.UnitTests.x64/V2HeaderTests.cs @@ -66,7 +66,7 @@ namespace Lithnet.CredentialProvider.UnitTests Assert.AreEqual(ConsentUIFlags.SecureDesktop | ConsentUIFlags.Unknown3, d.Flags); Assert.AreEqual(2, d.SessionId); Assert.AreEqual((IntPtr)0x0, d.HWnd); - Assert.AreEqual(ConsentUIElevationReason.PackagedApp, d.ElevationReason); + Assert.AreEqual(ConsentUIElevationReason.Msix, d.ElevationReason); Assert.AreEqual(ConsentUIPromptType.Credentials, d.PromptType); Assert.AreEqual("\"C:\\Program Files\\WindowsApps\\Microsoft.MSIXPackagingTool_1.2024.405.0_x64__8wekyb3d8bbwe\\MsixPackageTool.exe\" ", d.CommandLine); Assert.AreEqual("C:\\Program Files\\WindowsApps\\Microsoft.MSIXPackagingTool_1.2024.405.0_x64__8wekyb3d8bbwe\\MsixPackageTool.exe", d.ExecutablePath); @@ -85,7 +85,7 @@ namespace Lithnet.CredentialProvider.UnitTests Assert.AreEqual(ConsentUIFlags.SecureDesktop | ConsentUIFlags.AutoElevationOther | ConsentUIFlags.InWindowsDirectory, d.Flags); Assert.AreEqual(2, d.SessionId); Assert.AreEqual((IntPtr)0x00000000000d021e, d.HWnd); - Assert.AreEqual(ConsentUIElevationReason.CLSID, d.ElevationReason); + Assert.AreEqual(ConsentUIElevationReason.Clsid, d.ElevationReason); Assert.AreEqual(ConsentUIPromptType.Credentials, d.PromptType); Assert.AreEqual(new Guid("{3ad05575-8857-4850-9277-11b85bdb8e09}"), d.ClsId); Assert.AreEqual("C:\\WINDOWS\\system32\\windows.storage.dll", d.ComComponentPath); diff --git a/src/Lithnet.CredentialProvider.UnitTests.x86/V1HeaderTests.cs b/src/Lithnet.CredentialProvider.UnitTests.x86/V1HeaderTests.cs index 4aa43e8..b2ad989 100644 --- a/src/Lithnet.CredentialProvider.UnitTests.x86/V1HeaderTests.cs +++ b/src/Lithnet.CredentialProvider.UnitTests.x86/V1HeaderTests.cs @@ -65,7 +65,7 @@ namespace Lithnet.CredentialProvider.UnitTests Assert.AreEqual( ConsentUIFlags.SecureDesktop | ConsentUIFlags.Unknown3, d.Flags); Assert.AreEqual(2, d.SessionId); Assert.AreEqual((IntPtr)0x0, d.HWnd); - Assert.AreEqual(ConsentUIElevationReason.PackagedApp, d.ElevationReason); + Assert.AreEqual(ConsentUIElevationReason.Msix, d.ElevationReason); Assert.AreEqual(ConsentUIPromptType.Credentials, d.PromptType); Assert.AreEqual("\"C:\\Program Files\\WindowsApps\\Microsoft.MSIXPackagingTool_1.2023.807.0_x86__8wekyb3d8bbwe\\MsixPackageTool.exe\" ", d.CommandLine); Assert.AreEqual("C:\\Program Files\\WindowsApps\\Microsoft.MSIXPackagingTool_1.2023.807.0_x86__8wekyb3d8bbwe\\MsixPackageTool.exe", d.ExecutablePath); @@ -84,7 +84,7 @@ namespace Lithnet.CredentialProvider.UnitTests Assert.AreEqual(ConsentUIFlags.SecureDesktop | ConsentUIFlags.AutoElevationOther | ConsentUIFlags.InWindowsDirectory, d.Flags); Assert.AreEqual(2, d.SessionId); Assert.AreEqual((IntPtr)0x000b0586, d.HWnd); - Assert.AreEqual(ConsentUIElevationReason.CLSID, d.ElevationReason); + Assert.AreEqual(ConsentUIElevationReason.Clsid, d.ElevationReason); Assert.AreEqual(ConsentUIPromptType.Credentials, d.PromptType); Assert.AreEqual(new Guid("{3ad05575-8857-4850-9277-11b85bdb8e09}"), d.ClsId); Assert.AreEqual("C:\\Windows\\system32\\windows.storage.dll", d.ComComponentPath); diff --git a/src/Lithnet.CredentialProvider/Enums/ConsentUIElevationReason.cs b/src/Lithnet.CredentialProvider/Enums/ConsentUIElevationReason.cs index 76b0025..9c07c1e 100644 --- a/src/Lithnet.CredentialProvider/Enums/ConsentUIElevationReason.cs +++ b/src/Lithnet.CredentialProvider/Enums/ConsentUIElevationReason.cs @@ -8,6 +8,8 @@ /// /// > "The AppCompat database stores information in the application /// > compatibility fix entries for an application." + /// + /// `ELEVATION_REASON.ELEVATION_REASON_APPCOMPAT_EXPLICIT (ole32.dll)` /// AppCompatExplicit = 0, @@ -17,6 +19,8 @@ /// /// > "The AppCompat database stores information in the application /// > compatibility fix entries for an application." + /// + /// `ELEVATION_REASON.ELEVATION_REASON_APPCOMPAT_HEURISTIC (ole32.dll)` /// AppCompatHeuristic = 1, @@ -25,8 +29,9 @@ /// > "The Fusion database stores information from application /// > manifests that describe the applications. The manifest schema /// > is updated to add a new requested execution level field." - /// /// See also: https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests#trustinfo + /// + /// `ELEVATION_REASON.ELEVATION_REASON_FUSION (ole32.dll)` /// Fusion = 2, @@ -34,36 +39,50 @@ /// Automatically detected Windows Installer package (e.g. an EXE installer) /// > "Installer detection detects setup files, which helps prevent installations /// > from being run without the user's knowledge and consent." + /// + /// `ELEVATION_REASON.ELEVATION_REASON_INSTALLER (ole32.dll)` /// Installer = 3, /// /// COM elevation action + /// + /// `ELEVATION_REASON.ELEVATION_REASON_CLSID (ole32.dll)` /// - CLSID = 4, + Clsid = 4, /// /// Windows Installer package installation (MSI) + /// + /// `ELEVATION_REASON.ELEVATION_REASON_MSI (ole32.dll)` /// Msi = 5, /// /// "Run as Administrator..." (e.g. manual UAC) + /// + /// `ELEVATION_REASON.ELEVATION_REASON_REQUEST (ole32.dll)` /// Request = 6, /// /// ActiveX Installer Service (AXIS) + /// + /// `ELEVATION_REASON.ELEVATION_REASON_AXIS (ole32.dll)` /// - AxIS = 7, + Axis = 7, /// /// Packaged Applications (MSIX / APPX) + /// + /// `ELEVATION_REASON.ELEVATION_REASON_PACKAGED_APP (ole32.dll)` /// - PackagedApp = 8, + Msix = 8, /// /// Unknown + /// + /// `ELEVATION_REASON.ELEVATION_REASON_NUM_REASONS (ole32.dll)` /// NumReasons = 9, }