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 ICacheableKeyRingProvider
dotazová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 IDefaultKeyResolver
dů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
.
Doporučená akce
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