Thay đổi vi phạm: DefaultKeyResolution.ShouldGenerateNewKey có ý nghĩa thay đổi
DefaultKeyResolution.ShouldGenerateNewKey không còn phản ánh liệu default key có gần đến ngày hết hạn của nó hay không.
Phiên bản được giới thiệu
ASP.NET Core 9.0 Preview 3
Hành vi trước đây
Đây là một tính năng không có tài liệu, nhưng nhất quán của API: ShouldGenerateNewKey là true nếu default key nằm trong khoảng hai ngày (đơn giản hóa) trước khi hết hạn. Lượng thời gian dẫn trước được dựa trên khoảng thời gian polling (kiểm tra định kỳ) của ICacheableKeyRingProvider, vốn không phải là điều mà IDefaultKeyResolver.ResolveDefaultKeyPolicy nên phụ thuộc vào (vì, ví dụ, các triển khai thay thế có thể sẽ không biết về những chi tiết này).
Hành vi mới
Bắt đầu từ .NET 9, nếu ShouldGenerateNewKey là true, điều đó chỉ ra rằng không có default key hoặc vì một lý do chính sách nào khác (trong một triển khai chuyên biệt của IDefaultKeyResolver), một key mới nên được tạo ra. ICacheableKeyRingProvider tự đưa ra quyết định của mình về việc liệu thời gian hết hạn có đủ gần để đảm bảo tạo key mới hay không.
Loại thay đổi vi phạm
Thay đổi này là một behavioral change (thay đổi hành vi).
Lý do thay đổi
Thay đổi này được thực hiện vì hai lý do:
- Để thay đổi logic xung quanh việc tạo key gần thời điểm hết hạn.
- Để đơn giản hóa việc triển khai một
IDefaultKeyResolvertùy chỉnh.
Hành động được khuyến nghị
Nếu bạn có một triển khai IDefaultKeyResolver cố gắng sao chép logic hết hạn, bạn có thể loại bỏ logic đó (tuy nhiên, để nó cũng không sao).
Nếu bạn đang tiêu thụ IDefaultKeyResolver trực tiếp để xác định liệu hết hạn có đang chờ xử lý hay không, bạn có thể kiểm tra trực tiếp thuộc tính ExpirationDate của default key.
Các API bị ảnh hưởng
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey