Condividi tramite


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.

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