共用方式為


DefaultKeyResolution.ShouldGenerateNewKey 已更改意義

DefaultKeyResolution.ShouldGenerateNewKey 不再反映預設索引鍵是否接近其到期時間。

推出的版本

ASP.NET Core 9.0 Preview 3

先前的行為

這是未記載但一致的 API ShouldGenerateNewKey 功能,也就是 true 如果預設金鑰在到期時間的兩天內(過度簡化),則為 。 根據 ICacheableKeyRingProvider 的輪詢間隔來設置前置時間是不合理的,因為 IDefaultKeyResolver.ResolveDefaultKeyPolicy 不應依賴於此(例如,替代的實作方式可能不了解這些細節)。

新行為

從 .NET 9 開始,如果 ShouldGenerateNewKeytrue,表示沒有預設密鑰,或基於其他原則原因(在特製化實作中 IDefaultKeyResolver),應該產生新的密鑰。 系統 ICacheableKeyRingProvider 會自行決定到期時間是否足夠接近,從而需要生成新的密鑰。

破壞性變更的類型

此變更為行為變更

變更的原因

這項變更有兩個原因:

  • 為了在接近到期時間變更金鑰生成的邏輯。
  • 為了更容易地實作自訂 IDefaultKeyResolver

如果您有 IDefaultKeyResolver 嘗試複製到期邏輯的實作,則可以移除該邏輯(不過保留它也是可以的)。

如果您直接使用 IDefaultKeyResolver 來判斷是否即將到期,您可以直接檢查預設密鑰的 ExpirationDate 屬性。

受影響的 API

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