Releases: codebeltnet/cuemon
Releases · codebeltnet/cuemon
v9.0.0-preview.4
What's Changed
- V9.0.0/housekeeping by @gimlichael in #76
Full Changelog: v9.0.0-preview.3...v9.0.0-preview.4
v9.0.0-preview.3
What's Changed
- General Housekeeping by @gimlichael in #75
- Improved performance for .NET 9.0+ through System.Threading.Lock. by @MarkCiliaVincenti in #73
New Contributors
- @MarkCiliaVincenti made their first contribution in #73
Full Changelog: v9.0.0-preview.2...v9.0.0-preview.3
v9.0.0-preview.2
Full Changelog: v9.0.0-preview.1...v9.0.0-preview.2
v9.0.0-preview.1
Full Changelog: v8.3.2...v9.0.0-preview.1
v8.3.2
This release will most likely be the last in the v8-series; the next couple of months will be used on embracing .NET 9 while exercising housekeeping on existing features and continuously providing preview builds for the community.
Dependencies
- Cuemon.Extensions.Swashbuckle.AspNetCore updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.Text.Json updated to latest and greatest with respect to TFMs (fixes CVE-2024-30105)
- Cuemon.Extensions.Xunit updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.Xunit.Hosting updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.Xunit.Hosting.AspNetCore updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.Xunit.Hosting.AspNetCore.Mvc updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.YamlDotNet updated to latest and greatest with respect to TFMs
Fixed
- YamlFormatter class in the Cuemon.Extensions.YamlDotNet.Formatters namespace to use WithCaseInsensitivePropertyMatching (aaubry/YamlDotNet#946)
- Although v16.0.0 of YamlDotNet has breaking changes, this is not reflected in the API from Cuemon.Extensions.YamlDotNet until next major release
Removed
- TFM net7.0 for all projects due to EOL
v8.3.1
This release was primarily focused on adapting a more modern way of performing CI/CD while making 3rd party tools more agnostic to the ever changing world of technology. Highlight of non-code changes:
- Azure DevOps pipelines has been replaced with GitHub Actions
- DocFX documentation now supports hosting on ARM based platforms
- Adapted trunk based branching that is more aligned with todays DevSecOps practices
- Added branch protection rules that ensures a linear git history and requires pull request before merging
Dependencies
- Cuemon.Extensions.Swashbuckle.AspNetCore updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.Xunit updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.Xunit.Hosting updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.Xunit.Hosting.AspNetCore updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.Xunit.Hosting.AspNetCore.Mvc updated to latest and greatest with respect to TFMs
- Cuemon.Extensions.YamlDotNet updated to latest and greatest with respect to TFMs
Added
- IWebHostTest interface in the Cuemon.Extensions.Xunit.Hosting.AspNetCore namespace that represents the members needed for ASP.NET Core (including but not limited to MVC, Razor and related) testing
- WebHostTestFactory class in the Cuemon.Extensions.Xunit.Hosting.AspNetCore namespace that provides a set of static methods for ASP.NET Core (including, but not limited to MVC, Razor and related) unit testing
Deprecated
- IMiddlewareTest interface in the Cuemon.Extensions.Xunit.Hosting.AspNetCore namespace; use the consolidated IWebHostTest instead
- MiddlewareTestFactory class in the Cuemon.Extensions.Xunit.Hosting.AspNetCore namespace; use the consolidated WebHostTestFactory instead
- IWebApplicationTest interface in the Cuemon.Extensions.Xunit.Hosting.AspNetCore.Mvc namespace; use the consolidated IWebHostTest in the Cuemon.Extensions.Xunit.Hosting.AspNetCore namespace instead
- WebApplicationTestFactory class in the Cuemon.Extensions.Xunit.Hosting.AspNetCore.Mvc namespace; use the consolidated WebHostTestFactory in the Cuemon.Extensions.Xunit.Hosting.AspNetCore namespace instead
8.3.0
Added
- Test class in the Cuemon.Extensions.Xunit namespace was extended with one new static method: Match
- WildcardOptions class in the Cuemon.Extensions.Xunit namespace that provides configuration options for the Match method on the Test class
- ExceptionConverter class in the Cuemon.Extensions.YamlDotNet.Converters namespace that converts an Exception to YAML
- ExceptionDescriptorConverter class in the Cuemon.Extensions.YamlDotNet.Converters namespace that converts an ExceptionDescriptor to YAML
- YamlConverter class in the Cuemon.Extensions.YamlDotNet.Converters namespace that converts an object to and from YAML (YAML ain't markup language)
- YamlFormatter class in the Cuemon.Extensions.YamlDotNet.Formatters namespace that serializes and deserializes an object, in YAML format
- YamlFormatterOptions class in the Cuemon.Extensions.YamlDotNet.Formatters namespace that provides configuration options for YamlFormatter
- YamlFormatterOptionsExtensions class in the Cuemon.Extensions.YamlDotNet.Formatters namespace that consist of one extension method for the YamlFormatterOptions class: SetPropertyName
- EmitterExtensions class in the Cuemon.Extensions.YamlDotNet namespace that consist of many extension method for the IEmitter interface: WriteStartObject, WriteString, WritePropertyName, WriteValue, WriteEndObject, WriteStartArray, WriteEndArray and WriteObject
- NodeOptions class in the Cuemon.Extensions.YamlDotNet namespace that provides configuration options for EmitterExtensions
- ScalarOptions class in the Cuemon.Extensions.YamlDotNet namespace that provides configuration options for EmitterExtensions
- YamlConverterFactory class in the Cuemon.Extensions.YamlDotNet namespace that provides a factory based way to create and wrap an YamlConverter implementations
- YamlSerializerOptions class in the Cuemon.Extensions.YamlDotNet namespace that provides configuration options for SerializerBuilder and DeserializerBuilder
Changed
- ValidatorExtensions class in the Cuemon.Extensions namespace was extended with two new extension methods for the Validator class: ContainsAny and NotContainsAny
- HttpExceptionDescriptorResponseHandlerExtensions class in the Cuemon.Extensions.AspNetCore.Diagnostics namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- YamlConverterExtensions class in the Cuemon.Extensions.AspNetCore.Text.Yaml.Converters namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Text.Yaml.Formatters namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- MvcBuilderExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- MvcCoreBuilderExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- YamlSerializationInputFormatter class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- YamlSerializationMvcOptionsSetup class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- YamlSerializationOutputFormatter class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- CultureInfoExtensions class in the Cuemon.Extensions.Globalization namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- CultureInfoSurrogate class in the Cuemon.Extensions.Globalization namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- tooling/gse to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- ExceptionDescriptorExtensions class in the Cuemon.Extensions.Diagnostics namespace to use Cuemon.Extensions.YamlDotNet assembly instead of legacy YAML support in Cuemon.Core assembly
- DefaultYamlConverter class in the Cuemon.Runtime.Serialization.Converters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlSerializer class in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlSerializerOptions class in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlTextReader class in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlTextWriter class in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlTokenType enum in the Cuemon.Runtime.Serialization to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- ExceptionDescriptorConverter class in the Cuemon.Text.Yaml.Converters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlConverter class in the Cuemon.Text.Yaml.Converters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlFormatter class in the Cuemon.Text.Yaml.Formatters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlFormatterOptions class in the Cuemon.Text.Yaml.Formatters to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlConverterFactory class in the Cuemon.Text.Yaml to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
- YamlNamingPolicy class in the Cuemon.Text.Yaml to include the ObsoleteAttribute with this message: All YAML marshalling has been moved to its own assembly; Cuemon.Extensions.YamlDotNet. This member will be removed with next major version
Fixed
- Alphanumeric class in the Cuemon namespace so that the WhiteSpace constant field does not include the U+180E (Mongolian vowel separator) since it is no longer considered a white space as per Unicode 6.3.0
- ExceptionConverter class in the Cuemon.Text.Yaml.Converters namespace to use Environment.NewLine instead of Alphanumeric.NewLine (vital for non-Windows operating systems)
- ExceptionConverter class in the Cuemon.Extensions.Newtonsoft.Json.Converters namespace to use Environment.NewLine instead of Alphanumeric.NewLine (vital for non-Windows operating systems)
- ExceptionConverter class in the Cuemon.Extensions.Text.Json.Converters namespace to use Environment.NewLine instead of Alphanumeric.NewLine (vital for non-Windows operating systems)
8.2.0
Added
- AuthenticationHandlerFeature class in the Cuemon.AspNetCore.Authentication namespace that provides a combined default implementation of IAuthenticateResultFeature and IHttpAuthenticationFeature so that AuthenticateResult and User is consistent with each other
- SwaggerGenOptionsExtensions class in the Cuemon.Extensions.Swashbuckle.AspNetCore namespace was extended with one new extension method for the SwaggerGenOptions class: AddBasicAuthenticationSecurity
- GoneResult class in the Cuemon.AspNetCore.Mvc namespace that is an ActionResult that returns a Gone (410) response
- HostBuilderExtensions class in the Cuemon.Extensions.Hosting namespace that consist of extension methods for the IHostBuilder interface: ConfigureConfigurationSources and RemoveConfigurationSource (for .NET 6, .NET 7 and .NET 8)
Changed
- BasicAuthenticationHandler class in the Cuemon.AspNetCore.Authentication.Basic namespace to propagate IAuthenticateResultFeature and IHttpAuthenticationFeature as part of HandleChallengeAsync
- DigestAuthenticationHandler class in the Cuemon.AspNetCore.Authentication.Digest namespace to propagate IAuthenticateResultFeature and IHttpAuthenticationFeature as part of HandleChallengeAsync
- HmacAuthenticationHandler class in the Cuemon.AspNetCore.Authentication.Hmac namespace to propagate IAuthenticateResultFeature and IHttpAuthenticationFeature as part of HandleChallengeAsync
- AuthorizationResponseHandler class in the Cuemon.Extensions.AspNetCore.Authentication namespace to rely on IAuthenticateResultFeature
- AuthorizationResponseHandlerOptions class in the Cuemon.Extensions.AspNetCore.Authentication namespace to include a function delegate property named AuthorizationFailureHandler that provides the reason/requirement/generic message of the failed authorization
- RestfulSwaggerOptions class in the Cuemon.Extensions.Swashbuckle.AspNetCore namespace to include a function delegate property named JsonSerializerOptionsFactory that will resolve a JsonSerializerOptions instance in a more flexible way than provided by the Swagger team
- ServiceCollectionExtensions class in the Cuemon.Extensions.Swashbuckle.AspNetCore namespace to support JsonSerializerOptionsFactory in the AddRestfulSwagger extension method
- Validator class in the Cuemon namespace to throw an ArgumentOutOfRangeException when ThrowIfUri is called with uriKind set to an indeterminate value of UriKind.RelativeOrAbsolute
Fixed
- Validator class in the Cuemon namespace to have one less redundant ThrowIfNullOrWhitespace method while simplifying the remainder
- ParserFactory class in the Cuemon.Text namespace so that FromUri method now validates both Absolute and Relative URI correct (prior to this fix, only Absolute was validated correctly)
8.1.0
Added
- ApiKeySentinelAttribute class in the Cuemon.AspNetCore.Mvc.Filters.Headers namespace to provide a convenient way to protect your API with an ApiKeySentinelFilter
- ConfigurableAsyncAuthorizationFilter in the Cuemon.AspNetCore.Mvc.Filters namespace that provides a base class implementation of a filter that asynchronously confirms request authorization
- ForbiddenObjectResult in the Cuemon.AspNetCore.Mvc namespace that is an ObjectResult that when executed will produce a Forbidden (403) response
- ForbiddenResult in the Cuemon.AspNetCore.Mvc namespace that is an ActionResult that returns a Forbidden (403) response
- BasicAuthenticationHandler class in the Cuemon.AspNetCore.Authentication.Basic namespace to provide a HTTP Basic Authentication implementation of AuthenticationHandler{TOptions}
- AuthenticationBuilderExtensions class in the Cuemon.Extensions.AspNetCore.Authentication namespace that consist of extension methods for the AuthenticationBuilder class: AddBasic, AddDigestAccess and AddHmac
- MvcBuilderExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Filters namespace that consist of extension methods for the IMvcBuilder interface: AddApiKeySentinelOptions, AddThrottlingSentinelOptions, AddUserAgentSentinelOptions, AddFaultDescriptorOptions and AddHttpCacheableOptions
- LoggerExtensions class in the Cuemon.Extensions.Xunit.Hosting namespace that consist of extension methods for the ILogger{T} interface: GetTestStore{T}
- ServiceCollectionExtensions class in the Cuemon.Extensions.Xunit.Hosting namespace that consist of extension methods for the IServiceCollection interface: AddXunitTestLogging
- TestLoggerEntry record in the Cuemon.Extensions.Xunit.Hosting namespace that represents a captured log-entry for testing purposes
- ServerTimingOptions class in the Cuemon.AspNetCore.Diagnostics namespace that provides configuration options for ServerTimingMiddleware and related
- XmlConverterExtensions class in the Cuemon.Extensions.AspNetCore.Xml.Converters namespace that consist of extension methods for the XmlConverter class: AddHttpExceptionDescriptorConverter, AddStringValuesConverter, AddHeaderDictionaryConverter, AddQueryCollectionConverter, AddFormCollectionConverter and AddCookieCollectionConverter
- ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Xml.Formatters namespace that consist of extension methods for the IServiceCollection interface: AddXmlFormatterOptions and AddXmlExceptionResponseFormatter
- JsonConverterCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Text.Json.Converters namespace that consist of extension methods for the JsonConverter class: AddHttpExceptionDescriptorConverter and AddStringValuesConverter
- ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Text.Json.Formatters namespace that consist of extension methods for the IServiceCollection interface: AddJsonFormatterOptions and AddJsonExceptionResponseFormatter
- JsonConverterCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Newtonsoft.Json.Converters namespace that consist of extension methods for the JsonConverter class: AddHttpExceptionDescriptorConverter and AddStringValuesConverter
- ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Newtonsoft.Json.Formatters namespace that consist of extension methods for the IServiceCollection interface: AddNewtonsoftJsonFormatterOptions and AddNewtonsoftJsonExceptionResponseFormatter
- HttpExceptionDescriptorResponseFormatter{T} class in the Cuemon.AspNetCore.Diagnostics namespace that provides a generic way to support content negotiation for exceptions in the application
- IHttpExceptionDescriptorResponseFormatter interface in the Cuemon.AspNetCore.Diagnostics namespace that defines a way to support content negotiation for exceptions in the application
- IContentNegotiation interface in the Cuemon.Net.Http namespace that defines a way to support content negotiation for HTTP enabled applications
- ServiceProviderExtensions class in the Cuemon.Extensions.AspNetCore.Diagnostics namespace that consist of extension methods for the IServiceProvider interface: GetExceptionResponseFormatters
- HttpExceptionDescriptorResponseFormatterExtensions class in the Cuemon.Extensions.AspNetCore.Http namespace that consist of extension methods for the IHttpExceptionDescriptorResponseFormatter interface: SelectExceptionDescriptorHandlers
- ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Text.Yaml.Formatters namespace that consist of extension methods for the IServiceCollection interface: AddYamlFormatterOptions and AddYamlExceptionResponseFormatter
- MvcBuilderExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace that consist of extension methods for the IMvcBuilder interface: AddYamlFormatters and AddYamlFormattersOptions
- MvcCoreBuilderExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace that consist of extension methods for the IMvcCoreBuilder interface: AddYamlFormatters and AddYamlFormattersOptions
- YamlSerializationInputFormatter class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace that handles deserialization of YAML to objects using YamlFormatter
- YamlSerializationMvcOptionsSetup class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace that is a ConfigureOptions{TOptions} implementation which will add the YAML serializer formatters to MvcOptions
- YamlSerializationOutputFormatter class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml namespace that handles serialization of objects to YAML using YamlFormatter
- MvcBuilderExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text namespace that consist of extension methods for the IMvcBuilder interface: AddExceptionDescriptorOptions
- MvcCoreBuilderExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text namespace that consist of extension methods for the IMvcCoreBuilder interface: AddExceptionDescriptorOptions
- ServiceProviderExtensions class in the Cuemon.Extensions.DependencyInjection namespace with extension methods for the IServiceProvider interface: GetServiceDescriptor
- AuthorizationResponseHandler class in the Cuemon.Extensions.AspNetCore.Authentication namespace that provides an opinionated implementation of IAuthorizationMiddlewareResultHandler that is optimized to deliver meaningful responses based on HTTP content negotiation
- AuthorizationResponseHandlerOptions class in the Cuemon.Extensions.AspNetCore.Authentication namespace that specifies options that is related to AuthorizationResponseHandler operations
- ServiceCollectionExtensions class in the Cuemon.Extensions.AspNetCore.Authentication namespace that consist of extension methods for the IServiceCollection interface: AddAuthorizationResponseHandler
Fixed
- DigestAuthenticationOptions class in the Cuemon.AspNetCore.Authentication.Digest namespace to include UseServerSideHa1Storage that finally allows the server to bypass calculation of HA1 password representation
- ServerTimingFilter class in the Cuemon.AspNetCore.Mvc.Filters.Diagnostics namespace to only use embedded profiler when used in combination with ServerTimingAttribute
- HttpExceptionDescriptorResponseHandlerExtensions class in the Cuemon.Extensions.AspNetCore.Diagnostics namespace so that AddYamlResponseHandler now enumerates all supported media types in regards to content negotiation
- HttpExceptionDescriptorResponseHandlerExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml namespace so that AddXmlResponseHandler now enumerates all supported media types in regards to content negotiation
- HttpExceptionDescriptorResponseHandlerExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json namespace so that AddJsonResponseHandler now enumerates all supported media types in regards to content negotiation
- HttpExceptionDescriptorResponseHandlerExtensions class in the Cuemon.Extensions.AspNetCore.Mvc.Formatters.Newtonsoft.Json namespace so that AddNewtonsoftJsonResponseHandler now enumerates all supported media types in regards to content negotiation
- HttpEntityTagHeaderFilter class in the Cuemon.AspNetCore.Mvc.Filters.Cacheable namespace so the new body stream is not disposed of prematurely leading to 500 errors on subsequent requests
- HttpCacheableFilter class in the Cuemon.AspNetCore.Mvc.Filters.Cacheable namespace so that an odd if statement is applied in general instead of confined to the scope of ObjectResult
- YamlTextWriter class in the Cuemon.Runtime.Serialization namespace to be slightly more compliant with the YAML standard (next major version will opt-in for a 3rd party library that adhere to the standard in both terms of serializing and deserializing)
Changed
- ApiKeySentinelOptions class in the Cuemon.AspNetCore.Http.Headers namespace to include two new properties, GenericClientStatusCode and GenericClientMessage, rendering the existing BadRequestMessage property obsolete
- ApiKeySentinelFilter class in the Cuemon.AspNetCore.Mvc.Filters.Headers namespace from an action based filter to an authorization based filter
- BasicAuthenticationMiddleware class in the Cuemon.AspNetCore.Authentication.Basic namespace to be slightly more reusable in the confines of the Cuemon.AspNetCore.Authentication assembly
- BasicAuthenticationOptions class in the Cuemon.AspNetCore.Authentication.Basic namespace to include ValidateOptions to ensure that public read-write properties are in a valid state
- AuthenticationOptions class in the Cuemon.AspNetCore.Authentication namespace to inherit from AuthenticationSchemeOptions and implement IValidatableParameterObject (replacing earlier IParameterObject) that ensures UnauthorizedMessage property is in a valid state
- TryAuthenticate{T} signature on the static Authenticator class in the Cuemon.AspNetCor...
8.0.1
Fixed
- CachingManager class in the Cuemon.Runtime.Caching namespace so that it no longer throws a MissingMethodException due to changes introduced with target-typed new from C# 9
- NewtonsoftJsonFormatterOptions class in the Cuemon.Extensions.Newtonsoft.Json.Formatters namespace to be consistent with general date time handling; applied DateFormatString = "O"