Delen via


DefaultKeyResolution.ShouldGenerateNewKey heeft de betekenis veranderd

DefaultKeyResolution.ShouldGenerateNewKey geeft niet meer aan of de standaardsleutel dicht bij de verlooptijd ligt.

Geïntroduceerde versie

ASP.NET Core 9.0 Preview 3

Vorig gedrag

Het was een niet-gedocumenteerde, maar consistente eigenschap van de API dat ShouldGenerateNewKeytrue was als de standaardsleutel binnen twee dagen (een oversimplificatie) van zijn verlooptijd was. De hoeveelheid voorlooptijd was gebaseerd op het polling-interval van ICacheableKeyRingProvider, waar IDefaultKeyResolver.ResolveDefaultKeyPolicy niet van afhankelijk zou moeten zijn (omdat bijvoorbeeld alternatieve implementaties waarschijnlijk niet op de hoogte zouden zijn van deze details).

Nieuw gedrag

Vanaf .NET 9, als ShouldGenerateNewKey gelijk is aan 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 gegenereerd moet worden. De ICacheableKeyRingProvider neemt zelf de beslissing of de verlooptijd dichtbij genoeg is om het genereren van een nieuwe sleutel te rechtvaardigen.

Type van brekende verandering

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 IDefaultKeyResolverimplementatie uit te voeren.

Als u een IDefaultKeyResolver implementatie hebt die de verlooplogica probeert te repliceren, kunt u die logica verwijderen (maar het is ook prima).

Als u rechten gebruik maakt van IDefaultKeyResolver om te bepalen of de vervaldatum nabij is, kunt u de eigenschap van de standaardsleutel ExpirationDate direct controleren.

Betreffende API's

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