Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
DefaultKeyResolution.ShouldGenerateNewKey ya no refleja si la clave predeterminada está cerca de su hora de expiración.
Versión introducida
ASP.NET Core 9.0 Preview 3
Comportamiento anterior
Era una característica no documentada, pero coherente, de la API que ShouldGenerateNewKey era true si la clave predeterminada estaba dentro de dos días (una sobresimplificación) de su hora de expiración. La cantidad de tiempo de espera se basaba en el intervalo de sondeo de ICacheableKeyRingProvider, que no debía haber dependido de algo IDefaultKeyResolver.ResolveDefaultKeyPolicy (ya que, por ejemplo, las implementaciones alternativas probablemente no serían conscientes de estos detalles).
Nuevo comportamiento
A partir de .NET 9, si ShouldGenerateNewKey es true, indica que no hay ninguna clave predeterminada o que por algún otro motivo de directiva (en una implementación especializada de IDefaultKeyResolver), se debe generar una nueva clave. ICacheableKeyRingProvider toma su propia decisión sobre si el tiempo de expiración es lo suficientemente cercano como para garantizar la generación de una nueva clave.
Tipo de cambio disruptivo
Este es un cambio de comportamiento.
Motivo del cambio
Este cambio se realizó por dos razones:
- Para cambiar la lógica en torno a la generación de claves cerca de la fecha de expiración.
- Para que sea más sencillo implementar una implementación personalizada de
IDefaultKeyResolver.
Acción recomendada
Si tiene una IDefaultKeyResolver implementación que intenta replicar la lógica de expiración, puede eliminar esa lógica, aunque dejarla está bien también.
Si estaba consumiendo IDefaultKeyResolver directamente para determinar si la fecha de caducidad estaba pendiente, puede comprobar directamente la propiedad de la clave ExpirationDate predeterminada.
Las APIs afectadas
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey