DefaultKeyResolution.ShouldGenerateNewKey heeft betekenis gewijzigd
DefaultKeyResolution.ShouldGenerateNewKey
geeft niet meer aan of de standaardsleutel dicht bij de verlooptijd ligt.
Versie geïntroduceerd
ASP.NET Core 9.0 Preview 3
Vorig gedrag
Het was een niet-gedocumenteerde, maar consistente functie van de API die ShouldGenerateNewKey
was true
als de standaardsleutel binnen twee dagen (een overschrijding) van de verlooptijd was. De hoeveelheid doorlooptijd was gebaseerd op het polling-interval van ICacheableKeyRingProvider
, waarvan niet IDefaultKeyResolver.ResolveDefaultKeyPolicy
iets zou moeten zijn afhankelijk (omdat bijvoorbeeld alternatieve implementaties waarschijnlijk niet op de hoogte waren van deze details).
Nieuw gedrag
Vanaf .NET 9, als ShouldGenerateNewKey
dat het geval is true
, geeft dit aan dat er geen standaardsleutel is of dat er om een andere beleidsreden (in een gespecialiseerde implementatie van IDefaultKeyResolver
) een nieuwe sleutel moet worden gegenereerd. De ICacheableKeyRingProvider
eigenaar beslist zelf of de verlooptijd dicht genoeg is om het genereren van een nieuwe sleutel te rechtvaardigen.
Type wijziging die fouten veroorzaken
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Deze wijziging is om twee redenen aangebracht:
- De logica voor het genereren van sleutels in de buurt van de verlooptijd wijzigen.
- Om het eenvoudiger te maken om een aangepaste
IDefaultKeyResolver
implementatie uit te voeren.
Aanbevolen actie
Als u een IDefaultKeyResolver
implementatie hebt die de verlooplogica probeert te repliceren, kunt u die logica verwijderen (maar het is ook prima).
Als u rechtstreeks verbruikt IDefaultKeyResolver
om te bepalen of de vervaldatum in behandeling was, kunt u de eigenschap van ExpirationDate
de standaardsleutel rechtstreeks controleren.
Betrokken API's
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey