## [9.1.3](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v9.1.2...v9.1.3) (2025-04-09)

### Bug Fixes

* update dependencies ([#966](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/966)) ([eb95530](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/eb95530156f2554cafdb1d29521d724a75787dad))

## [9.1.2](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v9.1.1...v9.1.2) (2025-03-20)

### Bug Fixes

* reenable deterministic builds ([#954](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/954)) ([0cd78b3](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/0cd78b3ac917917dd58280733014a7589c05423a))

## [9.1.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v9.1.0...v9.1.1) (2025-03-18)

### Bug Fixes

* fix cache store leaving orphan tenant on some update scenarios ([#946](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/946)) ([5edd9fe](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/5edd9fee3e59207b67884514322c8f115bf4a543))
* update dependency versions ([#953](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/953)) ([67598c1](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/67598c1489a38e83be1ca0779addb334319d8e7a))

## [9.1.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v9.0.0...v9.1.0) (2025-03-12)

### Features

* add WithDelegateStrategy<TContext, TTenantInfo> ([#932](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/932)) ([a18a935](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a18a935ea397b4cbd9e52fdcee589212db9d0999))
* add WithHttpContextStrategy ([#934](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/934)) ([e6aeb7c](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/e6aeb7c9c265d39eb4bec0d2be526f582f41f886))
* better async pattern for class libraries ([#942](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/942)) ([8235462](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/82354625d24ced67228246885f9f326389209e9c))
* improved perf for HostStrategy ([#936](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/936)) ([a70f7e0](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a70f7e0f47eaf180e5f64f1bba61cae59086251a))

### Bug Fixes

* added new analyzers and multiple fixes  ([#937](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/937)) ([9d9b1e4](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/9d9b1e416929ebbd795c0eef3361cca7d6d238ce))
* MultiTenantDbContext.Create should have non nullable TenantInfo ([#916](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/916)) ([9df0527](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/9df0527841549e0dd6e2017cfff3ebc6f03b7e16))

## [9.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v8.0.0...v9.0.0) (2024-11-13)


### ⚠ BREAKING CHANGES

* `OnTenantResolved` and `OnTenantNotResolved` are no longer used. Use the `OnStrategyResolveCompleted`, `OnStoreResolveCompleted`, and `OnTenantResolveCompleted` events instead.
* `MultiTenantDbContext` constructors accepting `ITenantInfo` removed, use `MultiTenantDbContext.Create` factory method instead.
* net6.0 and net7.0 are no longer supported targets.
* dotnet runtime specific dependencies now float to the latest patch version and are locked at release time with a NuGet lock file. This is a security mitigation and may break some builds not on the latest SDKs.

### Features

* add multitenant db factory method ([#894](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/894)) (
  [ea216ff](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/ea216ffb37d241804899ab0f3cd5db1e9c6ae641))
* better tenant resolution events ([#897](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/897)) ([956ca36](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/956ca36670aa8aed38afcbbbdd78f1b79d91287c))
* dotnet 9 support ([#893](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/893)) ([4be1b88](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/4be1b88fb7103223517d2cd8a16ea62c6d6204d5))
* make builds deterministic and set latest GH actions ([#889](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/889)) ([d82f89d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/d82f89da2f7a82bb302aaedfdb5c676cc7051273))

## [8.1.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v8.0.0...v8.1.0) (2025-03-18)

### Bug Fixes

* fix cache store leaving orphan tenant on some update scenarios ([#949](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/949)) ([7929f00](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/7929f00bc2eb8ef82ee01e431bc04ef3b63d6f0f))


### Features

* better async backported ([#951](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/951)) ([a204403](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a204403666794ea42c850ff5bfb736f1ced30e45))

## [8.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v7.0.2...v8.0.0) (2024-10-12)

### ⚠ BREAKING CHANGES

* This commit brings the release into alignment with the new version policy. See #887 for details.
* Included strategies for ASP.NET Core would throw an exception if the passed context was not an `HttpContext` type. Now they will return null indicating no identifier was found.

### Features

* add GetAllAsync() support for HttpRemoteStore ([#848](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/848)) ([4208149](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/4208149282eaee99e2c02a788a2653faaa24ef7a))
* added the Echo Store. ([#807](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/807)) ([a3e5eee](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a3e5eee64f0581c5f3d6abca7bb77cc56ef1d75c))
* strategies return null on invalid context type ([#885](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/885)) ([9834575](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/9834575c957fb5bd314cf0970e54a29384026d02))

### Bug Fixes

* BasePathStrategy no longer breaks the strategy chain ([#884](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/884)) ([3263eff](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/3263effae4638656aab827b24094a8e575ae19a0))
* prevent duplicate key annotation in AdjustKey() ([#883](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/883)) ([f75ba2c](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/f75ba2c678079d2e956bf7d32b8e5aee0159e72b))
* removed unused parameter from WithPerTenantRemoteAuthenticationConvention ([#886](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/886)) ([dd17ab5](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/dd17ab51825ec94f4ecfe704f42c6b0457562d98))


## [7.0.2](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v7.0.1...v7.0.2) (2024-08-03)


### Bug Fixes

* Preserve annotations when adjusting index ([#832](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/832)) ([e765340](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/e765340a3c74268cadf191a55e9a5c082894c2bd))
* strategy wrapper no longer throws on a null context, instead passing it to the actual strategy ([#863](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/863)) ([2b165c7](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/2b165c77db4f82244e33fe1823e865f30b2a3ea2))

## [7.0.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v7.0.0...v7.0.1) (2024-04-28)


### Bug Fixes

* only throw exception in EnforceMultiTenant for null tenant if there are entity changes. ([#819](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/819)) ([ca9e9fd](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/ca9e9fd9a55789d790d31f82756e5ecdac03a28f))

## [7.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.13.1...v7.0.0) (2024-04-21)


### ⚠ BREAKING CHANGES

* (I)MultiTenantContext and (I)TenantInfo are no longer available via dependency injection. Use
  IMultiTenantContextAccessor instead. MultiTenantDbContext and MultiTenantIdentityDbContext will require a new
  constructor that injects IMultiTenantContextAccessor or IMultiTenantContext<TTenantInfo>.
* Many namespaces have been updated for consistency. Most code will only need to use the Finbuckle.MultiTenant or
  Finbuckle.MultiTenant.Abstractions namespace.
* Connection string is removed from ITenantInfo and the default TenantInfo implementation.
* Added support for OptionsBuilder API and more efficient per-tenant options overall.
* WithPerTenantOptions replaced by ConfigurePerTenant service collection extensions methods.
* Unique indexes and the UserLogin primary key in the standard Identity models adjusted to include tenant id.
* IMultiTenantContext nullability reworked and should never be null.

### Features

* better options support ([#681](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/681)) ([1859017](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/185901786f2225eb38b3609770c60b98fdcbc122))
* change default MultiTenantIdentityDbContext default index and key behavior ([81f5612](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/81f5612008c3335192d9b26beb22be9a28beca8b))
* MultiTenantDbContext and MultiTenantIdentityDbContext support for IMultiTenantContextAccessor DI ([9015085](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/901508563af4fa872a0dc3930ff3b8315777b912))
* namespace cleaned up ([b354838](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/b354838a90741626c47ea4f109c49f7fe2ca5b3d))
* refactor DI and improve nullability ([eca24bf](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/eca24bfa0c314f95794b235141cff42059cf3fcf))
* remove ConnectionString from ITenantInfo and TenantInfo ([f4e20db](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/f4e20db35fe9e31e1cfb37a667b1ba4b64ce6f3f))


### Bug Fixes

* AdjustKey correctly adding TenantId to primary and foreign keys ([613b4a8](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/613b4a855e919e02910c42f9f534cddba40339c9))

## [6.13.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.13.0...v6.13.1) (2024-01-24)


### Bug Fixes

* update dependency to protect against CVE-2024-21319 ([#781](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/781)) ([c5e0c8a](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/c5e0c8a8e3f60033f97993b7feaf4ff87150a0f8))

## [6.13.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.12.0...v6.13.0) (2023-12-21)


### Features

* .net8.0 LTS release support ([#770](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/770)) ([d7f08f9](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/d7f08f94896b8efa8ca1877bcb0c4920b98ba049))


### Bug Fixes

* OnTenantNotResolved not called correctly ([#729](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/729)) ([a26081c](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a26081c960786c3eb33f9b2173feed6c33427a74)), closes [#628](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/628)

## [6.12.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.1...v6.12.0) (2023-08-25)


### Features

* AdjustIndex preserves existing filter ([#711](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/711)) ([affb66f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/affb66f268a133916c17c7797138cd16dc67e728))
* net8.0 ([#712](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/712)) ([a137dae](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a137dae907b2f9b465bee735e9e9eddec64bddf5))

## [6.11.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.0...v6.11.1) (2023-07-06)


### Bug Fixes

* make DecorateService public ([#671](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/671)) ([c9746d6](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/c9746d6655f2fa0130031885ebf9b4980a93c531)), closes [#668](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/668)

## [6.11.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.10.0...v6.11.0) (2023-07-01)


### Features

* add HasResolvedTenant to IMultiTenantContext ([#650](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/650)) ([375add5](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/375add51e7317b03652556d4d1d0eb7ef20b8caf))
* perf improvements in BasePathStrategy and  RemoteAuthenticationCallbackStrategy ([#654](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/654)) ([ac1c58a](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/ac1c58aed8ef0f053bfc26adb95078b481c26a58))


### Bug Fixes

* internal refactoring and improved XML comments for intellisense ([c42c53d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/c42c53d6c52bfab340327e40d44060f2bb550010))
* xml docs corrections ([#639](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/639)) ([265d26d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/265d26d338b96813d061cb1b16ed1b575ef48469))

## [6.10.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.9.1...v6.10.0) (2023-01-30)


### Features

* add nongeneric IMultiTenantContext for flexibility ([b3a198f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/b3a198f46aba9370f3671b62c35ae06b829a7d73))


### Bug Fixes

* fixes undesired context tracking across EFCoreStore methods ([#633](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/633)) ([3605a75](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/3605a75482a4f585dc1115559a40a81eac437154))
* remove netcore3.1 ([#632](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/632)) ([6c21fe9](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/6c21fe999c9d15e50cd0e2fcf480b5d442f7f2f3))

## [6.9.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.9.0...v6.9.1) (2022-11-10)


### Bug Fixes

* update for final .NET 7 release ([#610](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/610)) ([ac32e7d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/ac32e7dbb9b2bb7315e4787234677e1643ef0118))

## [6.9.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.8.1...v6.9.0) (2022-10-23)


### Features

* .net7.0 support ([#604](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/604)) ([4d7d54d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/4d7d54d928ecc22b7cc7d7de50223400b00c9f10))


### Bug Fixes

* BasePathStrategy combine path bug ([0628b0f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/0628b0f3d27d4a975cf862b8477cec73a29080b2))

## [6.8.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.8.0...v6.8.1) (2022-09-17)


### Bug Fixes

* XML comment and generation fix ([#588](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/588)) ([c1de82d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/c1de82dc9405830ae92ec331b81048a4b485e17b))

## [6.8.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.7.3...v6.8.0) (2022-08-28)


### Features

* opened efcorestore to allow overriding methods ([#577](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/577)) ([7dac251](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/7dac251b39cbaf62a5329f71b920fac2288c1ec6)), closes [#574](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/574)


### Bug Fixes

* add missing using statement to samples ([#581](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/581)) ([ec8e08e](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/ec8e08e2bc99a85d28fc8be4aa34070f8eae4437))
* adjust logic in per-tenant-authentication conventions ([e78a26f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/e78a26fe1d3fa89b5ece8ecabcb2bce2f7a749ab))
* environment configuration in samples ([#579](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/579)) ([6df8827](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/6df882786c656108ffd4f0450c7c4fcb45cfe3fb))
* update authentication.md ([#573](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/573)) ([df55b24](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/df55b24668642dfca235071abdbf7b369c2b3a85))

## [6.7.3](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.7.2...v6.7.3) (2022-07-17)


### Bug Fixes

* drop .net 5.0 target ([#569](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/569)) ([38fa9e1](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/38fa9e1cac660822f091c3e71b1746803394308f))
* remove reliance on uncaught exceptions ([#563](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/563)) ([a675684](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a6756842b0558b19d620f9dcd049e30841841406))


### Performance Improvements

* corrected various async/await code ([#557](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/557)) ([fe7c01b](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/fe7c01b66336e83ef5f1f108f9c3a92861135d54))

### [6.7.2](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.7.1...v6.7.2) (2022-04-05)


### Bug Fixes

* update scheme provider to support decorator pattern ([#551](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/551)) ([ead052a](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/ead052a45bdb414b26c0373262e9eff0b472e305))

### [6.7.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.7.0...v6.7.1) (2022-03-10)


### Bug Fixes

* use web System.Text.Json setttings and update samples ([#544](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/544)) ([266e806](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/266e806964af9b70daa7d1ed93b6b5a96c50ae5d))

## [6.7.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.6.1...v6.7.0) (2022-03-06)


### Features

* Added support for named options ([#478](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/478)) ([#534](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/534)) ([6f9528d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/6f9528d737f2803cf60f4d66112e53b5b1cb81c6))

### [6.6.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.6.0...v6.6.1) (2022-02-19)


### Bug Fixes

* change delegate strategy func return type as nullabe and adds unit test ([#525](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/525)) ([80c7104](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/80c71041ad164da9ae8fb93a3ea0c68998b4e247))
* remove tenant id value generator ([#524](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/524)) ([0d3dcd8](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/0d3dcd891d23124c1589b736a0b2274d4fda060f))

## [6.6.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.5.1...v6.6.0) (2022-02-13)


### Features

* add BasePathStrategy option to rebase the AspNetCore Request.PathBase ([#510](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/510)) ([dccf414](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/dccf414c1fbb65d8a02b709460679e86c317451a))
* add nullable reference types to all projects ([#514](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/514)) ([e6141fe](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/e6141fec807025f8be51e86a82f91b4650a08aa4))
* add strategy type and store type to TenantResolvedContext ([#508](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/508)) ([ef52fc2](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/ef52fc21d05508bf4150bcfb7993aac953cd2202))


### Bug Fixes

* actually set the strategy and store types on OnTenantResolvedContext ([#509](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/509)) ([fd9029e](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/fd9029e112b1be7b2e029e56a65b88ab7ae618d6))
* remove dependency on NewtonSoft.Json ([#505](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/505)) ([f83f0b1](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/f83f0b1bf0278e91f9f4455f080fd00a2e644167))

### [6.5.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.5.0...v6.5.1) (2021-11-17)


### Bug Fixes

* ClaimStrategy validation bypass type principle changed to principal ([#493](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/493)) ([fbfd022](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/fbfd0228c8b30a5f663fd2dfade0ae1b5bda09da))

## [6.5.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.4.2...v6.5.0) (2021-11-08)


### Features

* add .NET 6 support ([#489](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/489)) ([a2d0416](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a2d041670bf7efb198b06a864bad0a4cfc490a0c))

### [6.4.2](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.4.1...v6.4.2) (2021-10-25)


### Bug Fixes

* change Options types from internal to public ([#483](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/483)) ([af9521d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/af9521d993ce1c0369662c8db26d790c06c521f3))

### [6.4.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.4.0...v6.4.1) (2021-10-11)


### Bug Fixes

* options not validating ([d4c6f30](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/d4c6f30d8d78b9e1c42a627f426a8ca867bc860f))

## [6.4.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.3.1...v6.4.0) (2021-10-07)


### Bug Fixes

* ClaimStrategy bypass cookie principal validation ([#475](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/475)) ([cd38a7f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/cd38a7f25f3eb4ccbf3fcc546cf93f2d2463df39))


### Features

* add optional parameter to specify the ClaimStrategy authentication scheme. ([#398](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/398)) thanks @Valks! ([d74ae41](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/d74ae41a71b9df6a95a711ef3bad6d4ebc9f73f7))

### [6.3.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.3.0...v6.3.1) (2021-09-30)


### Bug Fixes

* revert some platform targets to netstandard ([#469](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/469)) ([aceff1d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/aceff1d73540b22ef64c6cec0fd50e43eff5387b))

## [6.3.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.2.0...v6.3.0) (2021-09-06)

### Changes

- Removed support for .NET Core 2.1 which ended Microsoft support in August 2020.
- Retargeted specifically to .netcoreapp3.1 and .net5.0 across all packages.
- Added `AdjustKey`, `AdjustIndex`, `AdjustAlIndexes`, `AdjustUniqueIndexes` methods to be chained off `IsMultiTenant` in EFCore functionality. They add the implicit `TenantId` to the respective key/indexes.
- Reverted generic version of `IsMultiTenant` back to non-generic version for more flexibility.
- Improved tenant resolution logging functionality and performance. Thanks to **@lahma**!
- Fixed a bug with `InMemoryStore` implementation of `TryUpdate`. Thanks to **@mphill**!
- Fixed a bug where `ConfigurationStore` would throw an exception if there was no default section in the config.
- Fixed a bug where ASP.NET Core Identity security stamp validation would force user logout and raise exceptions. Thanks to **@Nivalux** for finding the root cause of this bug.
- Fixed a bug where `MultiTenantOptionsManager<TOptions>` was internal instead of public.
- Fixed problematic references in sample projects.
- Updated and improved documentation.
- Updated and improved tests.
- Added various project files for .NET Foundation on-boarding.

## [6.2.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.1.0...v6.2.0) (2021-02-16)

### Changes

- Added a new events system. See PR #359 Thanks to **@natelaff**!
- Some internal refactoring.
- Various documentation fixes.
- Added sourcelink to allow debugging into remote source code.
- Added a security policy.

## [6.1.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.0.0...v6.1.0) (2020-11-10)

### Changes

- .NET 5.0 support.
- New `DistributedCacheStore` uses the ASP.NET Core distributed cache for tenant resolution.
- New `HeaderStrategy` uses HTTP headers for tenant resolution. Thanks to **@natelaff**!
- Support for inheritance in multitenant Entity Framework Core entity. Thanks to **@rchamorro**!
- Fixed a conflict between ClaimStrategy and per-tenant authentication.
- Updated docs, samples, and unit tests.

## [6.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v5.0.4...v6.0.0) (2020-09-08)

### Changes

- Customizable `TenantInfo`. Implement `ITenantInfo` as needed or use the basic `TenantInfo` implementation. Should work with most strategies and stores. This was a major overhaul to the library. See docs for more information.
- Changed NuGet structure: use `Finbuckle.MultiTenant.AspNetCore` for web apps and if needed add `Finbuckle.MultiTenant.EntityFrameworkCore`.
- `WithPerTenantAuthentication` - Adds support for common per-tenant authentication scenarios. See docs for full details.
- Multiple strategies and stores can be registered. They will run in the order registered and the first tenant returned by a strategy/store combination is used.
- New `ClaimStrategy` checks for a tenant claim to resolve the tenant.
- New `SessionStrategy` uses a session variable to resolve the tenant.
- Refactored `InMemoryStore`, removed deprecated configuration functionality.
- Improved Blazor support.
- Improved support for non ASP.NET Core use cases.
- Removed support for ASP.NET 3.0.
- Removed `FallbackStrategy`, `StaticStrategy` is a better alternative.
- Bug fixes, refactors, and tweaks.
- Improved unit tests.
- Updated and improved documentation.
- Updated sample. Removed some older ASP.NET Core 2.1 samples.

## [5.0.4](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v5.0.3...v5.0.4) (2020-02-12)

### Changes

- Fixed a conflicting assembly and NuGet versions.
- Minor documentation fix.

## [5.0.3](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v5.0.1...v5.0.3) (2020-01-21)

### Changes

- Fixed a bug where documented static methods were internal rather than public.
- Minor documentation fix.

## [5.0.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v5.0.0...v5.0.1) (2020-01-15)

### Changes

- Updated for [.NET Core January 2020 Updates](https://devblogs.microsoft.com/dotnet/net-core-january-2020/) adding support for .NET Core 2.1.15, 3.0.2, and 3.1.1.
- Updated dependencies as recommended in security notices for [.NET Core January 2020 Updates](https://devblogs.microsoft.com/dotnet/net-core-january-2020/).
- *Finbuckle.MultiTenant.AspNetCore* targets `netcoreapp3.1`, `netcoreapp3.0`, and `netcoreapp2.1`.
- *Finbuckle.MultiTenant.Core* targets `netstandard2.1` and `netstandard2.0`.
- *Finbuckle.MultiTenant.EntityFrameworkCore* targets `netstandard2.1` and `netstandard2.0`.

## [5.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v4.0.0...v5.0.0) (2020-01-12)

### Changes

- Added support for ASP.NET Core 3.1.
- Major refactor of how Entity Framework multitenant data isolation works. No longer need to derive from `MultiTenantDbContext` greatly improving flexibility. `IdentityMultiTenantDbContext` reworked under this new model and no longer requires or recommends use of multitenant support classes, e.g. `MultiTenantIdentityUser`. Attempted to minimize impact, but if using `IdentityMultiTenantDbContext` **this may be a breaking change!** Thanks **@GordonBlahut**!
- Simplified `EFCoreStore` to use `TenantInfo` directly. **This is a breaking change!**
- Fixed a bug with user id not being set correctly in legacy `IdentityMultiTenantDbContext`.
- Added `ConfigurationStore` to load tenant information from app configuration. The store is read-only in code, but changes in configuration (e.g. appsettings.json) are picked up at runtime. Updated most sample projects to use this store.
- Deprecated `InMemoryStore` functionality that reads from configuration.
- Added `HttpRemoteStore` which will make an http request to get a `TenantInfo` object. It can be extended with `DelegatingHandler`s (i.e. to add authentication headers). Added sample projects for this store. Thanks to **@colindekker**!
- Fixed an exception with OpenIdConnect remote authentication if "state" is not returned from the identity provider. The new behavior will result in no tenant found for the request.
- Updated samples.
- Updated documentation.
- Updated unit tests to check against all valid project targets.
- Symbols package included for debugging.

## [4.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v3.2.0...v4.0.0) (2019-09-24)

### Changes

- Added support for ASP.NET Core 3! Valid project targets are `netcoreapp3.0`, `netcoreapp2.0`, and `netcoreapp2.1`.
- Added a sample app for ASP.NET 3 highlighting the route strategy improvements due to the endpoint routing mechanism.
- Fixed a bug where route strategy could throw an exception when used with Razor Pages. Thanks @stardocs-services!
- Support for configuring multiple multitenant strategies. Each will be tried in the order configured until a non-null tenant identifier is returned. The exception is the fallback strategy which always goes last.
- Refactored component assemblies for better dependency control. EFCore can be excluded by referencing `Finbuckle.MultiTenant.AspNetCore` instead of `Finbuckle.MultiTenant`.
- Updated documentation.
- Updated unit tests to check against all valid project targets.
- Symbols package included for debugging.

## [3.2.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v3.1.0...v3.2.0) (2019-09-08)

### Changes

- Added support for any preexisting global query filters in `MultiTenantDbContext` and `MultiTenantIdentityDbContext`. Thanks @nbarbettini!
- Exposed the inner stores and strategies as a property on the respective `StoreInfo` and `StrategyInfo` properties of `MultiTenantContext`. Previously you could only access the wrapper object for each. Thanks @WalternativE!
- Fixed certain methods on `MultiTenantOptionsCache` to be external as originally intended. Thanks @chernihiv!
- Fix a bug with `TryUpdateAsync` in the wrapper store. Thanks @steebwba!
- Updated documentation and fixed typos. Thanks @MesfinMo!

## [3.1.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v3.0.1...v3.1.0) (2019-06-09)

### Changes

- Added a strategy wrapper that handles validation and logging for the active strategy. When implementing `IMultiTenantStrategy` basic validation and logging are automatically provided.
- Added the delegate strategy that accepts a lambda to return the tenant identifier. Configure by calling `WithDelegateStrategy(...)`.
- Added the fallback strategy that provides a tenant identifier if the normal strategy (or remote authentication, if applicable) fails to resolve a tenant. Configure by calling `WithFallbackStrategy(...)`.
- Added `TrySetTenantInfo` as an extension method to `HttpContext`. This will set the `TenantInfo` provided as the current tenant for the request and can optionally reset the service providers so that scoped services are regenerated under the new tenant.
- Updated and improved documentation and sample projects.
- Miscellaneous bug fixes, code improvement, and unit tests.
- Thanks to @nbarbettini for contributing to this release.

## [3.0.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v3.0.0...v3.0.1) (2019-05-05)

### Changes

- Refactored the global query filter used in `MultiTenantDbContext` and `MultiTenantIdentityDbContext` (Thanks @GordonBlahut!) for better performance and code quality.
- Removed custom `IModelCacheKeyFactory` as it is no longer needed due to the global query filter changes.
- Updated documentation and samples.

## [3.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v2.0.2...v3.0.0) (2019-04-01)

### Changes

- Allow resetting option cache per-tenant. This is a breaking change.
- Host strategy can match entire domain as a special case (prior it only matched a single host segment).
- Added a sample project demonstrating a common login page shared by all tenants.
- Overhauled documentation.
- Updated unit and integration tests.
- Switch to Apache 2.0 license.

## [2.0.2](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v2.0.1...v2.0.2) (2019-02-05)

### Changes

- Fixed bug in Identity where `UserLogins` primary key was not adjusted for multitenant usage.
- Updated and Fixed the IdentityDataIsolation sample project.
- General code and test cleanup.

## [2.0.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v2.0.0...v2.0.1) (2019-01-07)

### Changes

- Fixed bug where the `TenantInfo` constructor did not save the passed `Items` collection.
- Tested for compatibility with ASP.NET Core 2.2.
- Updated samples for ASP.NET Core 2.2.
- Cleaned up library dependencies to target ASP.NET Core 2.1 or greater.

## [2.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v1.2.0...v2.0.0) (2018-12-03)

### Changes

- Changed `TenantContext` to `MultiTenantContext` which includes `TenantInfo`, `StrategyInfo`, and `StoreInfo` properties.
- Namespace changes (e.g. use of `Microsoft.Extensions.DependencyInjection` namespace for `Configure` and `ConfigureServices` methods).
- Additional and improved unit tests.
- Updated sample project dependencies.
- Various other internal improvements to code and bug fixes.
- `TryUpdate` method added to `IMultiTenantStore` interface.
- Added `EFCoreStore` which allows an Entity Framework Core database context as the tenant store.
- Added sample project demonstrating use of `EFCoreStore`.
- Custom can be configured with custom dependency injection lifetime (single, scoped, or transient) via `WithStore` method overloads.
- Custom stores automatically receive logging and error support via internal use of `MultiTenantStoreWrapper`.
- Use of async/await for strategy execution for improved performance.
- Custom strategies can be configured with custom dependency injection lifetime (single, scoped, or transient) via `WithStrategy` method overloads.
- Moved route configuration for RouteStrategy from `UseMultiTenant` to `WithRouteStrategy`.

## [1.2.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v1.1.1...v1.2.0) (2018-07-22)

### Changes

- Added variants of `MultiTenantIdentityDbContext` which allows more flexible integration with Identity (Thanks @Cpcrook!)
- Added sample project for data isolation with Identity
- Minor refactoring and more unit tests
- Various bug fixes

## [1.1.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v1.1.0...v1.1.1) (2018-05-22)

### Changes

- Fixed bug affecting per-tenant data isolation using a shared database
- Added sample project for data isolation
- Added new constructors for `MultiTenantDbContext` and `MultiTenantIdentityDbContext`

## [1.1.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v1.0.0...v1.1.0) (2018-04-22)

### Changes

- Remote authentication support
- Strategy improvements
- Store improvements
- Per-tenant options improvements
- Logging support
- Updated samples
- Improved unit and integration tests
- Switch to Apache 2.0 license

## [1.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/tree/v1.0.0) (2018-01-01)

### Changes

- Initial release