From 40f46ef594dcc6e572110b8914d42dd3e28b1639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Mon, 18 Aug 2025 12:16:27 +0200 Subject: [PATCH] Update the 6.0 -> 7.0 migration guide to include a note about DI resolution of custom manager types --- guides/migration/60-to-70.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/guides/migration/60-to-70.md b/guides/migration/60-to-70.md index e9edf6a6..266b3558 100644 --- a/guides/migration/60-to-70.md +++ b/guides/migration/60-to-70.md @@ -173,7 +173,7 @@ that do not use the new `client-authentication+jwt` JSON Web Token type. OpenIddict 7.0 no longer allows dynamically overriding the `prompt` value when using OAuth 2.0 Pushed Authorization Requests as the logic internally used to support this scenario was too fragile and was removed. To prevent `login endpoint -> authorization endpoint` loops, -developers are now encouraged use `TempData` to store a flag indicating whether the user has already been offered to re-authenticate +developers are now encouraged to use `TempData` to store a flag indicating whether the user has already been offered to re-authenticate and avoid triggering a new authentication challenge in that case. Here's an example: ```csharp @@ -266,7 +266,11 @@ public sealed class CustomTokenManager : OpenIddictTokenManager > The managers/stores service registration APIs present in `OpenIddictCoreBuilder` have also been reworked > to make them trimming and Native AOT-compatible, which may require making a few changes to your code. > -> See https://github.com/openiddict/openiddict-core/releases/tag/7.0.0-preview.2 for more information +> See https://github.com/openiddict/openiddict-core/releases/tag/7.0.0-preview.2 for more information. + +> [!NOTE] +> If you use custom application/authorization/scope/token managers and expect the custom manager types to be resolvable via DI, +> read https://github.com/openiddict/openiddict-core/issues/2369 to learn more about a related change introduced in 7.0. ## Update your custom EF Core stores to use the new `IOpenIddictEntityFrameworkContext` and `IOpenIddictEntityFrameworkCoreContext` interface (if applicable) @@ -404,7 +408,7 @@ review their Discord integration to determine whether their code should be updat ## Register your Entity Framework 6.x `DbContext` in the dependency injection container (if applicable) -In previous OpenIddict versions, the `OpenIddictEntityFrameworkBuilder.UseDbContext()` automatically registered the `TContext` +In previous OpenIddict versions, the `OpenIddictEntityFrameworkBuilder.UseDbContext()` API automatically registered the `TContext` type in the dependency injection container as a scoped service if no pre-existing service descriptor for that type could be found. While convenient, this behavior was inconsistent with the Entity Framework Core stores and was a hard-to-discover mechanism.