共用方式為


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