Freigeben über


DefaultKeyResolution.ShouldGenerateNewKey hat seine Bedeutung geändert.

DefaultKeyResolution.ShouldGenerateNewKey gibt nicht mehr an, ob der Standardschlüssel nahe an seiner Ablaufzeit liegt.

Eingeführte Version

ASP.NET Core 9.0 Preview 3

Vorheriges Verhalten

Es handelte sich um ein nicht dokumentiertes, aber konsistentes Feature der API, dass ShouldGenerateNewKeytrue war, wenn der Standardschlüssel innerhalb von zwei Tagen (eine Übervereinfachung) vor seiner Ablaufzeit lag. Die Dauer der Vorlaufzeit basiert auf dem Abrufintervall von ICacheableKeyRingProvider, von dem IDefaultKeyResolver.ResolveDefaultKeyPolicy nicht abhängig sein sollte (da z. B. alternative Implementierungen diese Details wahrscheinlich nicht kennen).

Neues Verhalten

Ab .NET 9, wenn ShouldGenerateNewKey ist true, bedeutet es, dass entweder kein Standardschlüssel vorhanden ist oder aus einem anderen Richtliniengrund (in einer spezialisierten Implementierung von IDefaultKeyResolver) ein neuer Schlüssel generiert werden soll. Die ICacheableKeyRingProvider trifft eigenständig die Entscheidung, ob die Ablaufzeit nah genug ist, um die Erstellung eines neuen Schlüssels zu rechtfertigen.

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für Änderung

Diese Änderung wurde aus zwei Gründen vorgenommen:

  • Um die Logik der Schlüsselgenerierung kurz vor Ablauf der Zeit zu ändern.
  • Um die Implementierung eines benutzerdefinierten IDefaultKeyResolver zu vereinfachen.

Wenn Sie über eine IDefaultKeyResolver Implementierung verfügen, die versucht, die Ablauflogik zu replizieren, können Sie diese Logik entfernen. Es ist jedoch auch in Ordnung, wenn Sie die Logik beibehalten.

Wenn Sie IDefaultKeyResolver direkt konsumierten, um festzustellen, ob der Ablauf bevorsteht, können Sie die ExpirationDate Eigenschaft des Standardschlüssels direkt überprüfen.

Betroffene APIs

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