DefaultKeyResolution.ShouldGenerateNewKey の意味が変更されました
DefaultKeyResolution.ShouldGenerateNewKey
は、既定のキーが有効期限に近いかどうかを反映しなくなりました。
導入されたバージョン
ASP.NET Core 9.0 Preview 3
以前の動作
これは、(単純化すると) 既定のキーの有効期限が 2 日以内に迫っていた場合、ShouldGenerateNewKey
が true
になるというドキュメント化はされていませんが、一貫性のある API の機能でした。 リード タイムの量は、ICacheableKeyRingProvider
のポーリング間隔という (たとえば、代わりの実装はこれらの詳細を関知できない可能性が高いため) IDefaultKeyResolver.ResolveDefaultKeyPolicy
が依存するべきではないものに基づいていました。
新しい動作
.NET 9 以降では、ShouldGenerateNewKey
が true
である場合、それは既定のキーがないこと、または他の何らかのポリシー上の理由で (IDefaultKeyResolver
の特殊な実装において) 新しいキーを生成する必要があることを意味します。 ICacheableKeyRingProvider
は、有効期限が新しいキーの生成を正当化できるほど近いかどうかについての判断を独自に行います。
破壊的変更の種類
この変更は、動作変更です。
変更理由
この変更は、以下の 2 つの理由で行われました。
- 有効期限に近いキー生成に関するロジックを変更するため。
- カスタムの
IDefaultKeyResolver
の実装をより簡単にするため。
推奨される操作
有効期限ロジックをレプリケートしようとする IDefaultKeyResolver
の実装がある場合は、そのロジックを削除できます (ただし、そのままでも問題ありません)。
期限切れが保留中かどうかを判断するために直接 IDefaultKeyResolver
を使用していた場合は、既定のキーの ExpirationDate
プロパティを直接確認できます。
影響を受ける API
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey
.NET