From ed679eba6b54875c85a4101851db344c5fc12320 Mon Sep 17 00:00:00 2001 From: Ryan Newington Date: Sat, 22 Jul 2023 14:44:23 +1000 Subject: [PATCH] Removes dependency on Microsoft.Extensions.Logging --- azure-pipelines.yml | 2 +- .../Controls/ControlBase.cs | 7 ++--- .../InsecurePasswordTextboxControl.cs | 1 - ...dentialProviderBase.ICredentialProvider.cs | 1 - ...derBase.ICredentialProviderSetUserArray.cs | 1 - .../CredentialProviderBase.cs | 6 ++-- .../CredentialProviderUser.cs | 1 - ...ntialTile.ICredentialProviderCredential.cs | 1 - ...ntialProviderCredentialWithFieldOptions.cs | 1 - .../CredentialTile.cs | 1 - ...ialTile2.ICredentialProviderCredential2.cs | 1 - ...ialTile3.ICredentialProviderCredential3.cs | 1 - .../CredentialTile3.cs | 1 - .../Interop/CredentialSerializer.cs | 1 - .../Interop/InternalExtensions.cs | 1 - .../Lithnet.CredentialProvider.csproj | 1 - .../Logging/ILogger.cs | 12 ++++++++ .../Logging/ILoggerFactory.cs | 11 ++++++++ .../Logging/TraceLogger.cs | 28 +++++++++++++++++++ .../Logging/TraceLoggerFactory.cs | 21 ++++++++++++++ 20 files changed, 77 insertions(+), 23 deletions(-) create mode 100644 src/Lithnet.CredentialProvider/Logging/ILogger.cs create mode 100644 src/Lithnet.CredentialProvider/Logging/ILoggerFactory.cs create mode 100644 src/Lithnet.CredentialProvider/Logging/TraceLogger.cs create mode 100644 src/Lithnet.CredentialProvider/Logging/TraceLoggerFactory.cs diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f578df0..3ec47f2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,7 +13,7 @@ variables: - name: build.version.revision value: $[counter(format('{0}.{1}', variables['build.version.major'], variables['build.version.minor']), 0)] - name: build.version.suffix - value: -beta1 + value: - name: build.version value: $(build.version.major).$(build.version.minor).$(build.version.revision)$(build.version.suffix) - name: build.versionShort diff --git a/src/Lithnet.CredentialProvider/Controls/ControlBase.cs b/src/Lithnet.CredentialProvider/Controls/ControlBase.cs index 2bd45f7..508ebc7 100644 --- a/src/Lithnet.CredentialProvider/Controls/ControlBase.cs +++ b/src/Lithnet.CredentialProvider/Controls/ControlBase.cs @@ -3,8 +3,6 @@ using System.ComponentModel; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; namespace Lithnet.CredentialProvider { @@ -19,8 +17,7 @@ namespace Lithnet.CredentialProvider private FieldInteractiveState interactiveState; private string label; private FieldOptions options; - private protected ILogger logger = NullLogger.Instance; - + private protected ILogger logger; public event PropertyChangedEventHandler PropertyChanged; private protected ControlBase(ControlBase source) @@ -52,7 +49,7 @@ namespace Lithnet.CredentialProvider this.state = FieldState.DisplayInSelectedTile; this.interactiveState = FieldInteractiveState.None; this.options = FieldOptions.None; - + this.logger = TraceLoggerFactory.Instance.CreateLogger(this.GetType()); this.Key = key; } diff --git a/src/Lithnet.CredentialProvider/Controls/InsecurePasswordTextboxControl.cs b/src/Lithnet.CredentialProvider/Controls/InsecurePasswordTextboxControl.cs index c44336a..0d59df5 100644 --- a/src/Lithnet.CredentialProvider/Controls/InsecurePasswordTextboxControl.cs +++ b/src/Lithnet.CredentialProvider/Controls/InsecurePasswordTextboxControl.cs @@ -1,7 +1,6 @@ using System; using System.Runtime.InteropServices; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProvider.cs b/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProvider.cs index 2248941..30f91fe 100644 --- a/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProvider.cs +++ b/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProvider.cs @@ -2,7 +2,6 @@ using System.Linq; using System.Runtime.InteropServices; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProviderSetUserArray.cs b/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProviderSetUserArray.cs index 49d94c4..dce764d 100644 --- a/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProviderSetUserArray.cs +++ b/src/Lithnet.CredentialProvider/CredentialProviderBase.ICredentialProviderSetUserArray.cs @@ -1,6 +1,5 @@ using System; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialProviderBase.cs b/src/Lithnet.CredentialProvider/CredentialProviderBase.cs index 8a64be6..33637b8 100644 --- a/src/Lithnet.CredentialProvider/CredentialProviderBase.cs +++ b/src/Lithnet.CredentialProvider/CredentialProviderBase.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using System.Reflection; using System.Runtime.InteropServices; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; namespace Lithnet.CredentialProvider { @@ -73,7 +71,7 @@ namespace Lithnet.CredentialProvider /// Gets a logger factory. Override this method and provide an implementation of to enable credential provider logging /// /// An ILoggerFactory instance - protected virtual ILoggerFactory GetLoggerFactory() { return NullLoggerFactory.Instance; } + protected virtual ILoggerFactory GetLoggerFactory() { return TraceLoggerFactory.Instance; } /// /// Gets a value indicating if the credential provider supports the provided by LogonUI or CredUI @@ -128,7 +126,7 @@ namespace Lithnet.CredentialProvider /// /// Removes one or more user tiles, and notifies LogonUI that tiles have been removed /// - /// The crendential tiles to remove + /// The credential tiles to remove public void RemoveUserTiles(params CredentialTile[] tiles) { if (tiles == null) diff --git a/src/Lithnet.CredentialProvider/CredentialProviderUser.cs b/src/Lithnet.CredentialProvider/CredentialProviderUser.cs index d02a9e2..636a378 100644 --- a/src/Lithnet.CredentialProvider/CredentialProviderUser.cs +++ b/src/Lithnet.CredentialProvider/CredentialProviderUser.cs @@ -1,7 +1,6 @@ using System; using System.Runtime.InteropServices; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredential.cs b/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredential.cs index 84d078d..6f251c6 100644 --- a/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredential.cs +++ b/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredential.cs @@ -1,7 +1,6 @@ using System; using System.Runtime.InteropServices; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredentialWithFieldOptions.cs b/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredentialWithFieldOptions.cs index c0c4709..6214cc6 100644 --- a/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredentialWithFieldOptions.cs +++ b/src/Lithnet.CredentialProvider/CredentialTile.ICredentialProviderCredentialWithFieldOptions.cs @@ -1,6 +1,5 @@ using System; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialTile.cs b/src/Lithnet.CredentialProvider/CredentialTile.cs index cdc0103..5e626a9 100644 --- a/src/Lithnet.CredentialProvider/CredentialTile.cs +++ b/src/Lithnet.CredentialProvider/CredentialTile.cs @@ -1,7 +1,6 @@ using System; using System.Runtime.InteropServices; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialTile2.ICredentialProviderCredential2.cs b/src/Lithnet.CredentialProvider/CredentialTile2.ICredentialProviderCredential2.cs index 9aa5899..b17c16e 100644 --- a/src/Lithnet.CredentialProvider/CredentialTile2.ICredentialProviderCredential2.cs +++ b/src/Lithnet.CredentialProvider/CredentialTile2.ICredentialProviderCredential2.cs @@ -1,6 +1,5 @@ using System; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialTile3.ICredentialProviderCredential3.cs b/src/Lithnet.CredentialProvider/CredentialTile3.ICredentialProviderCredential3.cs index 30c293d..088b9e5 100644 --- a/src/Lithnet.CredentialProvider/CredentialTile3.ICredentialProviderCredential3.cs +++ b/src/Lithnet.CredentialProvider/CredentialTile3.ICredentialProviderCredential3.cs @@ -1,6 +1,5 @@ using System; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/CredentialTile3.cs b/src/Lithnet.CredentialProvider/CredentialTile3.cs index 8a4c246..20207b1 100644 --- a/src/Lithnet.CredentialProvider/CredentialTile3.cs +++ b/src/Lithnet.CredentialProvider/CredentialTile3.cs @@ -1,6 +1,5 @@ using System; using Lithnet.CredentialProvider.Interop; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider { diff --git a/src/Lithnet.CredentialProvider/Interop/CredentialSerializer.cs b/src/Lithnet.CredentialProvider/Interop/CredentialSerializer.cs index 7c2c2ac..0ae4fea 100644 --- a/src/Lithnet.CredentialProvider/Interop/CredentialSerializer.cs +++ b/src/Lithnet.CredentialProvider/Interop/CredentialSerializer.cs @@ -2,7 +2,6 @@ using System.Runtime.InteropServices; using System.Security; using System.Text; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider.Interop { diff --git a/src/Lithnet.CredentialProvider/Interop/InternalExtensions.cs b/src/Lithnet.CredentialProvider/Interop/InternalExtensions.cs index abba1e0..88ff80e 100644 --- a/src/Lithnet.CredentialProvider/Interop/InternalExtensions.cs +++ b/src/Lithnet.CredentialProvider/Interop/InternalExtensions.cs @@ -1,7 +1,6 @@ using System; using System.Diagnostics; using System.Security; -using Microsoft.Extensions.Logging; namespace Lithnet.CredentialProvider.Interop { diff --git a/src/Lithnet.CredentialProvider/Lithnet.CredentialProvider.csproj b/src/Lithnet.CredentialProvider/Lithnet.CredentialProvider.csproj index 997ad0d..b6161f4 100644 --- a/src/Lithnet.CredentialProvider/Lithnet.CredentialProvider.csproj +++ b/src/Lithnet.CredentialProvider/Lithnet.CredentialProvider.csproj @@ -39,7 +39,6 @@ - all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Lithnet.CredentialProvider/Logging/ILogger.cs b/src/Lithnet.CredentialProvider/Logging/ILogger.cs new file mode 100644 index 0000000..3a03fc4 --- /dev/null +++ b/src/Lithnet.CredentialProvider/Logging/ILogger.cs @@ -0,0 +1,12 @@ +using System; + +namespace Lithnet.CredentialProvider +{ + public interface ILogger + { + void LogError(Exception ex, string v); + void LogError(string v); + void LogTrace(string v); + void LogWarning(string message); + } +} diff --git a/src/Lithnet.CredentialProvider/Logging/ILoggerFactory.cs b/src/Lithnet.CredentialProvider/Logging/ILoggerFactory.cs new file mode 100644 index 0000000..aa42552 --- /dev/null +++ b/src/Lithnet.CredentialProvider/Logging/ILoggerFactory.cs @@ -0,0 +1,11 @@ +using System; + +namespace Lithnet.CredentialProvider +{ + public interface ILoggerFactory + { + ILogger CreateLogger(Type type); + + ILogger CreateLogger(); + } +} diff --git a/src/Lithnet.CredentialProvider/Logging/TraceLogger.cs b/src/Lithnet.CredentialProvider/Logging/TraceLogger.cs new file mode 100644 index 0000000..7020dee --- /dev/null +++ b/src/Lithnet.CredentialProvider/Logging/TraceLogger.cs @@ -0,0 +1,28 @@ +using System; +using System.Diagnostics; + +namespace Lithnet.CredentialProvider +{ + public class TraceLogger : ILogger + { + public void LogError(Exception ex, string v) + { + Trace.TraceError(v + "\r\n\r\n" + ex?.ToString()); + } + + public void LogError(string v) + { + Trace.TraceError(v); + } + + public void LogTrace(string v) + { + Trace.TraceInformation(v); + } + + public void LogWarning(string message) + { + Trace.TraceWarning(message); + } + } +} diff --git a/src/Lithnet.CredentialProvider/Logging/TraceLoggerFactory.cs b/src/Lithnet.CredentialProvider/Logging/TraceLoggerFactory.cs new file mode 100644 index 0000000..35ecac9 --- /dev/null +++ b/src/Lithnet.CredentialProvider/Logging/TraceLoggerFactory.cs @@ -0,0 +1,21 @@ +using System; + +namespace Lithnet.CredentialProvider +{ + public class TraceLoggerFactory : ILoggerFactory + { + public ILogger CreateLogger(Type type) + { + return new TraceLogger(); + } + + public ILogger CreateLogger() + { + return new TraceLogger(); + } + + private static readonly TraceLoggerFactory loggerFactory = new TraceLoggerFactory(); + + public static ILoggerFactory Instance => loggerFactory; + } +}