Sdílet prostřednictvím


DefaultKeyResolution.ShouldGenerateNewKey změnil význam

DefaultKeyResolution.ShouldGenerateNewKey už nebude odrážet, jestli je výchozí klíč blízko času vypršení platnosti.

Zavedená verze

ASP.NET Core 9.0 Preview 3

Předchozí chování

Byla to nezdokumentovaná, ale konzistentní funkce rozhraní API, která byla true v případě, že ShouldGenerateNewKey výchozí klíč byl do dvou dnů (přesimplementace) doby vypršení platnosti. Doba trvání předstihu byla založena na intervalu ICacheableKeyRingProviderdotazování , který by neměl IDefaultKeyResolver.ResolveDefaultKeyPolicy záviset na (protože například alternativní implementace by pravděpodobně o těchto podrobnostech nevěděly).

Nové chování

Počínaje rozhraním .NET 9 označuje, ShouldGenerateNewKey trueže neexistuje žádný výchozí klíč nebo že z nějakého jiného IDefaultKeyResolverdůvodu zásad (ve specializované implementaci ) by se měl vygenerovat nový klíč. Vlastní ICacheableKeyRingProvider rozhodnutí o tom, jestli je doba vypršení platnosti dostatečně blízko k tomu, aby bylo zaručeno, že se vygeneruje nový klíč.

Typ zásadní změny

Tato změna je změna chování.

Důvod změny

Tato změna byla provedena ze dvou důvodů:

  • Pokud chcete změnit logiku kolem generování klíčů téměř v době vypršení platnosti.
  • Aby bylo jednodušší implementovat vlastní IDefaultKeyResolver.

Pokud máte IDefaultKeyResolver implementaci, která se pokusí replikovat logiku vypršení platnosti, můžete tuto logiku odebrat (ale ponechat ji také v pořádku).

Pokud jste přímo spotřebovali IDefaultKeyResolver , abyste zjistili, jestli došlo k čekání na vypršení platnosti, můžete přímo zkontrolovat vlastnost výchozího ExpirationDate klíče.

Ovlivněná rozhraní API

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