Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
DefaultKeyResolution.ShouldGenerateNewKey
ne reflète plus si la clé par défaut est proche de son délai d’expiration.
Version introduite
ASP.NET Core 9.0 Preview 3
Comportement précédent
Il s’agissait d’une fonctionnalité non documentée, mais cohérente, de l’API que ShouldGenerateNewKey
était true
si la clé par défaut était dans les deux jours (une sursimplification) de son délai d’expiration. Le temps d'anticipation était basé sur l'intervalle d'interrogation de ICacheableKeyRingProvider
, ce qui n'était pas quelque chose dont IDefaultKeyResolver.ResolveDefaultKeyPolicy
devait dépendre (puisque, par exemple, les autres implémentations ne seraient probablement pas conscientes de ces détails).
Nouveau comportement
À compter de .NET 9, si ShouldGenerateNewKey
est true
, cela indique qu’il n’existe aucune clé par défaut ou que, pour une autre raison stratégique (dans une implémentation spécialisée de IDefaultKeyResolver
), une nouvelle clé doit être générée. Le ICacheableKeyRingProvider
prend sa propre décision quant à savoir si le délai d’expiration est suffisamment proche pour justifier la génération d’une nouvelle clé.
Type de changement cassant
Ce changement est un changement de comportement.
Raison de la modification
Cette modification a été apportée pour deux raisons :
- Pour modifier la logique relative à la génération de clés à l’approche du délai d’expiration.
- Pour simplifier la création d’un
IDefaultKeyResolver
personnalisé.
Action recommandée
Si vous disposez d’une IDefaultKeyResolver
implémentation qui tente de répliquer la logique d’expiration, vous pouvez supprimer cette logique (toutefois, la laisser est correcte).
Si vous utilisiez IDefaultKeyResolver
directement pour déterminer si l'expiration était en attente, vous pouvez vérifier la propriété ExpirationDate
de la clé par défaut directement.
API affectées
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey