次の方法で共有


DefaultKeyResolution.ShouldGenerateNewKey の意味が変更されました

DefaultKeyResolution.ShouldGenerateNewKey は、既定のキーが有効期限に近いかどうかを反映しなくなりました。

導入されたバージョン

ASP.NET Core 9.0 Preview 3

以前の動作

これは、(単純化すると) 既定のキーの有効期限が 2 日以内に迫っていた場合、ShouldGenerateNewKeytrue になるというドキュメント化はされていませんが、一貫性のある API の機能でした。 リード タイムの量は、ICacheableKeyRingProvider のポーリング間隔という (たとえば、代わりの実装はこれらの詳細を関知できない可能性が高いため) IDefaultKeyResolver.ResolveDefaultKeyPolicy が依存するべきではないものに基づいていました。

新しい動作

.NET 9 以降では、ShouldGenerateNewKeytrue である場合、それは既定のキーがないこと、または他の何らかのポリシー上の理由で (IDefaultKeyResolver の特殊な実装において) 新しいキーを生成する必要があることを意味します。 ICacheableKeyRingProvider は、有効期限が新しいキーの生成を正当化できるほど近いかどうかについての判断を独自に行います。

破壊的変更の種類

この変更は、動作変更です。

変更理由

この変更は、以下の 2 つの理由で行われました。

  • 有効期限に近いキー生成に関するロジックを変更するため。
  • カスタムの IDefaultKeyResolver の実装をより簡単にするため。

有効期限ロジックをレプリケートしようとする IDefaultKeyResolver の実装がある場合は、そのロジックを削除できます (ただし、そのままでも問題ありません)。

期限切れが保留中かどうかを判断するために直接 IDefaultKeyResolver を使用していた場合は、既定のキーの ExpirationDate プロパティを直接確認できます。

影響を受ける API

  • Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey