Aracılığıyla paylaş


DefaultKeyResolution.ShouldGenerateNewKey'in anlamı değişti

DefaultKeyResolution.ShouldGenerateNewKey artık varsayılan anahtarın son kullanma süresine yakın olup olmadığını yansıtmaz.

Sürüm kullanıma sunulmuştur

ASP.NET Core 9.0 Önizleme 3

Önceki davranış

API'nin belgelenmemiş ancak tutarlı bir özelliği vardı: Varsayılan anahtarın son kullanma süresine iki günden az kaldığında (basitleştirilmiş haliyle), ShouldGenerateNewKeytrue olurdu. Sağlama süresi, ICacheableKeyRingProvider'in bağlı olmaması gereken IDefaultKeyResolver.ResolveDefaultKeyPolicy yoklama aralığına dayanıyordu (çünkü, örneğin, alternatif uygulamalar muhtemelen bu ayrıntıların farkında olmayacaktır).

Yeni davranış

.NET 9 sürümünden başlayarak, eğer ShouldGenerateNewKeytrue ise, bu ya varsayılan bir anahtar olmadığını ya da başka bir ilke nedeni ile (IDefaultKeyResolver'nin özel bir uygulaması) yeni bir anahtar oluşturulması gerektiğini gösterir. , ICacheableKeyRingProvider son kullanma süresinin yeni bir anahtar oluşturmayı garanti edecek kadar yakın olup olmadığı konusunda kendi kararını verir.

Kesinti yaratan değişiklik türü

Bu değişiklik davranışsal bir değişikliktir.

Değişiklik nedeni

Bu değişiklik iki nedenden dolayı yapılmıştır:

  • Son kullanma süresine yakın anahtar oluşturmanın mantığını değiştirmek için.
  • Özel IDefaultKeyResolver uygulamasını yapmayı kolaylaştırmak için.

Süre sonu mantığını çoğaltmaya çalışan bir IDefaultKeyResolver uygulamanız varsa, bu mantığı kaldırabilirsiniz (ancak, bırakma da uygundur).

Sürenin dolup dolmadığını belirlemek için IDefaultKeyResolver doğrudan tüketiyorsanız, varsayılan anahtarın ExpirationDate özelliğini doğrudan kontrol edebilirsiniz.

Etkilenen API'ler

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