DefaultKeyResolution.ShouldGenerateNewKey ha modificato il significato
DefaultKeyResolution.ShouldGenerateNewKey
non riflette più se la chiave predefinita è vicina alla scadenza.
Versione introdotta
ASP.NET Core 9.0 Preview 3
Comportamento precedente
Era una funzionalità non documentata, ma coerente, dell'API che ShouldGenerateNewKey
era true
se la chiave predefinita era entro due giorni (una sovrasmplificazione) della scadenza. La quantità di lead time è basata sull'intervallo di polling di ICacheableKeyRingProvider
, che non IDefaultKeyResolver.ResolveDefaultKeyPolicy
avrebbe dovuto dipendere da ( dal momento che, ad esempio, le implementazioni alternative probabilmente non sarebbero consapevoli di questi dettagli).
Nuovo comportamento
A partire da .NET 9, se ShouldGenerateNewKey
è true
, indica che non esiste una chiave predefinita o che per qualche altro motivo dei criteri (in un'implementazione specializzata di IDefaultKeyResolver
), deve essere generata una nuova chiave. Prende ICacheableKeyRingProvider
la propria decisione circa se l'ora di scadenza è abbastanza vicina per giustificare la generazione di una nuova chiave.
Tipo di modifica che causa un'interruzione
Questa è una modifica funzionale.
Motivo della modifica
Questa modifica è stata apportata per due motivi:
- Per modificare la logica intorno alla generazione di chiavi vicino alla scadenza.
- Per semplificare l'implementazione di un oggetto personalizzato
IDefaultKeyResolver
.
Azione consigliata
Se si dispone di un'implementazione IDefaultKeyResolver
che tenta di replicare la logica di scadenza, è possibile rimuovere tale logica, ma lasciandola bene.
Se si utilizza IDefaultKeyResolver
direttamente per determinare se la scadenza era in sospeso, è possibile controllare direttamente la proprietà della ExpirationDate
chiave predefinita.
API interessate
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey