14 KiB
14 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Upcoming - 0000-00-00
Diffs
- AMWD.Common
- AMWD.Common.AspNetCore
- AMWD.Common.EntityFrameworkCore
- AMWD.Common.MessagePack
- AMWD.Common.Test
Added
.AddRange()for collections.AddIfNotNull()for collectionsDomainComparerordering alphabetically from TLD to sub-domainIPAddressComparerable to compare IPv4 and IPv6VersionStringComparerto compare version strings (SemVer)ContainsAny()andContainsAll()for stringsASPNETCORE_APPL_PROXYenvironment variable can be used on proxy configuration- Support for .NET 10.0 LTS
ToCleanString()forIPAddressesmapped IPv4 to IPv6ToSubnetMask()to generated IPv4 subnet masks from CIDR notationObfuscateIpAddress()to mask sensidive parts of an IP address (e.g. for listing in logs)ArchiveHelperto create zip or tar.gz archives from a list ofArchiveFiles (net8.0/net10.0)
Changed
- Solution restructured to use multiple test projects
- Optimized for C# 14
IPNetworkis used from (asMicrosoft.AspNetCore.HttpOverridesis tagged as "out of support"):- .NET Standard 2.0:
Microsoft.AspNetCore.HttpOverrides.IPNetwork - .NET 8.0 and later:
System.Net.IPNetwork
- .NET Standard 2.0:
- Moved
MessagePackformatter extensions to own packageAMWD.Common.MessagePack GetAlignedInterval()(without Local/Utc) is now public accessible- Using native
Convert.FromHexStringon .NET 8.0 and later onHexToBytesextension
Removed
GetDisplayNamefor enum values was removed- Support for .NET 6.0 LTS
asp/v3.0.0, efc/v3.0.0 - 2023-12-28
Diffs
Added
- Support for .NET 8.0 LTS
Changed
- Renamed all private members to start with an underscore
- Split "Add
DateOnlyandTimeOnlyconverters" into two extension methods
asp/v2.2.0 - 2023-12-05
Diffs
Changed
- Using
AddHostedService<>()with "implementation factory" forAddSingletonHostedService<>()to resove singleton instance GetRemoteIpAddress()converts a mixed IPv4 address on IPv6 (e.g.::ffff:127.0.0.1) to a clean IPv4 address (e.g.127.0.0.1)
Removed
- Removed
BackgroundServiceStarter
v2.0.1, asp/v2.1.0, efc/v2.0.1, test/v2.1.1 - 2023-11-23
Diffs
Added
- Added
ConfigureAwait(false)to async calls where appropriate - Added localhost and private IPv6 subnet to
UseProxyHosting()
Changed
- Changed order of header evaluation for remote IP address parsing:
Cf-Connecting-Ip,X-Real-IP,X-Forwarded-For
Fixed
GetRemoteIpAddress()is able to get address when multiple proxies are used
test/v2.1.0 - 2023-10-13
Diffs
Added
- Added
SnapshotAssertfor better UnitTesting
Changed
- Moved
AMWD.Common.MoqtoAMWD.Common.Test
v2.0.0 - 2023-08-08
Added
CommandLineParseras alternative to theConfigurationBuilder.AddCommandLinefrom Microsoft
Removed
- Support for .NET Core 3.1
v1.13.0 - 2023-06-27
Added
ProtectedPathMiddlewareto secure even static file paths
Changed
- Moved
BasicAuthentication* into sub-namespaceSecurity
v1.12.0 - 2023-06-01
Changed
- Renamed
IPBlacklistAttributetoIPBlockListAttribute - Renamed
IPWhitelistAttributetoIPAllowListAttribute HttpContextExtensionsGetAntiforgeryToken()now returns the header name alsoGetRemoteIpAddress()checks following additional headers by default:X-Forwarded-ForX-Real-IPCF-Connecting-IP
v1.11.1 - 2023-05-11
Fixed
JsonExtensions.GetValue<T>()now is case insensitive and detects the correct property name of aJObject.
v1.11.0 - 2023-03-29
Added
directory.build.propsanddirectory.build.targetsGetDisplayName()extension for enums (DisplayAttribute(Name = ""))FileLoggeras additionalILoggerimplementation (fromMicrosoft.Extensions.Logging)StartTransaction(Async)asDbContextextensions; prevents exceptions onInMemorydatabase
v1.10.0 - 2022-09-18
Fixed
- Over-/Underflow behaviour for IPAddress de-/increment
- Await behaviour for AsyncQueue (not required to marshal back to the original captured context)
Removed
- Removing dependency from DNS package It's now used via reflection when possible (otherwise exeption)
v1.9.0 - 2022-08-14
Added
AsyncQueue<T>toAMWD.Common.Utilitieswith namespaceSystem.Collections.Generic
v1.8.1 - 2022-08-07
Fixed
- UnitTests
- BasicAuthentication modules now all use the cancellation token
v1.8.0 - 2022-08-07
Added
- Converters for
Newtonsoft.JsonByteArrayHexConverterto get an byte array as hex string instead of Base64IPAddressConverterto makeSystem.Net.IPAdresses (and list forms) serializableIPNetworkConverterto makeMicrosoft.AspNetCore.HttpOverrides.IPNetwork(and list forms) serializable
- Formatters for
MessagePackIPAddressFormatterto serialize anSystem.Net.IPAddressIPAddressArrayFormatterto serialize arrays ofSystem.Net.IPAddressesIPAddressListFormatterto serialize lists ofSystem.Net.IPAddressesIPNetworkFormatterto serialize anMicrosoft.AspNetCore.HttpOverrides.IPNetworkIPNetworkArrayFormatterto serialize arrays ofMicrosoft.AspNetCore.HttpOverrides.IPNetworkIPNetworkListFormatterto serialize lists ofMicrosoft.AspNetCore.HttpOverrides.IPNetwork
Changed
IBasicAuthenticationValidatorhas the possibillity to cancel the operation
v1.7.0 - 2022-07-24
Added
- UnitTests for
AspNetCoreas far as testable without massive work IPAddress.IncrementandIPAddress.DecrementextensionsNetworkHelper.ParseNetworkandNetworkHelper.TryParseNetworkto parse a CIDR (e.g. 192.168.178.0/24) networkIPNetwork.ExpandNetworkto create a list with all containedIPAddresses
Changed
BasicAuthenticationAttributenow respects theIBasicAuthenticationValidator.Realmwhen the ownRealmproperty is not set- CI scripts
- Updated all package references to latest builds (as on 2022-07-23)
Removed
IBasicAuthenticationValidator.Realmis now a read-only property (removed public set)
v1.6.1 - 2022-06-23
Added
BasicAuthenticationAttributesets theHttpContext.Userproperty when successfully validated
Changed
- Moved
BasicAuthenticationAttributefromActionFiltertoIAsyncAuthorizationFilter
Fixed
TimeSpan.ToShortString()is now capable of negative values
v1.6.0 - 2022-06-22
Changed
- All attributes now reside in
Microsoft.AspNetCore.Mvc.Filtersnamespace
Fixed
- Fixed
BasicAuthenticationAttribute
v1.5.3 - 2022-06-22
Changed
BasicAuthenticationAttributeis now in namespaceAMWD.Common.AspNetCore.Attributes
Fixed
- Fixed problem with
ForbidResultwithout having an authentication schema defined Now only HTTP Status 403 (Forbid) is returned
v1.5.2 - 2022-06-20
Removed
- Removed support for .NET 5.0 due to EOL (2022-05-10, see .NET and .NET Core release lifecycle)
v1.5.1 - 2022-06-20
Changed
- Changed from
Assembly.GetExecutingAssmebly().LocationtoAppContext.BaseDirectorydue to single-file applications
v1.5.0 - 2022-06-15
Added
TcpClientMoqto test communication via aTcpClient- EntityFramework Core Converters for new
DateOnlyandTimeOnlydatatypes when using SQL Server on .NET 6.0 (Bug on Microsoft's EntityFramework) HttpContext.IsLocalRequest()to determine whether the request was from local or remoteIPWhitelistAttributeandIPBlacklistAttributeto allow/restrict access on specific controllers/actions
v1.4.3 - 2022-05-12
Fixed
- Fixed detection of SQLServer for EFCore extensions
v1.4.2 - 2022-05-06
Added
- New extension for
StringBuilderAppendLine(value: string, newLine: string)to add a line with a explicit defined new line character
v1.4.1 - 2022-03-23
Added
IntegrityHashTagHelpercan be used withasp-integrity="true|false"andasp-integrity-strength="256|384|512"WaitAvailableAsynccan be used to wait for a database connection to be available
Changed
ApplyMigrationsAsyncusesWaitAvailableAsyncinternally
Fixed
InMemorydatabase provider does not fail on "migration" (none possible)
v1.4.0 - 2022-02-11
Added
- New NuGet package
AMWD.Common.MoqwithHttpRequestHandlerMoqclass - Supporting
InMemoryDatabase as provider
Changed
- Enhanced Stopwatch/Timer delta due to unsharp resolution using timers
IBasicAuthenticationValidatornow also provides the realm as property (resolving a string on DI is bad style)
v1.3.0 - 2021-12-21
Added
BasicAuthenticationHandlerto use instead of other handlers (instead of e.g. CookieAuthentication)BasicAuthenticationAttributeto restrict single actions
Changed
- Simplified package references on AspNetCore
- Changed NuGet package
DnsClienttoDNS
v1.2.0 - 2021-12-19
Added
- CHANGELOG
HtmlHelper.IsDarkColorto classify a color as dark or light one (by luminance)ReadLineandReadLineAsyncasStreamExtensions
Changed
- Unit-Tests enhanced
- Unit-Tests excluded from code coverage calcualtion
- Updated NuGet package
NetRevisionTask
v1.1.0 - 2021-11-22
Added
AddSingletonHostedService<TService, TImplementation>using an interface and an implementation type- Unit-Tests for
AMWD.Common(ca. 60% Branch-Coverage, target: above 90%) IsValidEmailAddresscheck whether a string is a valid email address, optionally with DNS check (MX record)- AES and 3DES De-/Encrypt enhanced for string to string (plain/base64)
Changed
- CI Build-Process splitted into: build, test, deploy
GetAlignedIntervalsplitted intoGetAlignedIntervalUtcandGetAlignedIntervalLocalto respect daylight saving timesHexToByteschecks for valid characters by using RegEx
Fixed
Sha256as string extension
v1.0.2 - 2021-11-09
Added
- .NET 6.0 (LTS) compatibility
- Versioning in README
Changed
- CI Build modified
- C# Update from 9.0 to 10.0
Fixed
- Comments updated / enhanced
v1.0.1 - 2021-10-25
Added
ParseDecimaladded to prevent problems with comma/dot as decimal separator
Changed
- NuGet packages reside on
artifacts/
Fixed
- MySQL library is now working correctly via reflection
v1.0.0 - 2021-10-24
Added
- Lizenz
- Readme
Changed
CustomFloatingPointModelBinder*renamed toInvariantFloatingPointModelBinder*ResolveHostreturns a list of resolved ip addressesResolveInterfacereturns a list of resolved ip addresses
Removed
IPAddress fallbackparameter removed fromResolveHostIPAddress fallbackparameter removed fromResolveInterfaceResolveInterfacedoes not use DNS to resolve the input (kind a weired behaviour)
v0.0.2 - 2021-10-23
Added
- NuGet packages have an icon
Changed
- Additional information for NuGet packages
v0.0.1 - 2021-10-23
Initial release