次の方法で共有


DefaultKeyResolution.ShouldGenerateNewKey で意味を変更しました

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

導入されたバージョン

ASP.NET Core 9.0 Preview 3

以前の動作

ShouldGenerateNewKeytrueであることは、既定のキーが有効期限まで2日以内(単純化)の場合に適用される、文書化されていないが一貫したAPIの特徴でした。 リード タイムの量は、 ICacheableKeyRingProviderのポーリング間隔に基づいていました。これは、 IDefaultKeyResolver.ResolveDefaultKeyPolicy 依存すべきものではありません (たとえば、代替実装ではこれらの詳細が認識されない可能性があるため)。

新しい動作

.NET 9 以降では、 ShouldGenerateNewKeytrueされている場合は、既定のキーがないか、他の何らかのポリシー上の理由で ( IDefaultKeyResolverの特殊な実装で) 新しいキーを生成する必要があることを示します。 ICacheableKeyRingProviderは、有効期限が新しいキーを生成するのに十分近いかどうかを独自に決定します。

破壊的変更の種類

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

変更の理由

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

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

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

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

影響を受ける API

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