Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
DefaultKeyResolution.ShouldGenerateNewKey não reflete mais se a chave padrão está próxima de seu tempo de expiração.
Versão introduzida
ASP.NET Core 9.0 Preview 3
Comportamento anterior
Era um recurso não documentado, mas consistente, da API que ShouldGenerateNewKey era true se a chave padrão estivesse dentro de dois dias (uma simplificação excessiva) de seu tempo de expiração. A quantidade de prazo de execução foi baseada no intervalo de sondagem de ICacheableKeyRingProvider, que não era algo de que IDefaultKeyResolver.ResolveDefaultKeyPolicy devesse ter dependido (uma vez que, por exemplo, implementações alternativas provavelmente não estariam cientes desses detalhes).
Novo comportamento
A partir do .NET 9, se ShouldGenerateNewKey for true, indica que não há nenhuma chave padrão ou que, por algum outro motivo de política (em uma implementação especializada de IDefaultKeyResolver), uma nova chave deve ser gerada. O ICacheableKeyRingProvider toma sua própria decisão sobre se o tempo de expiração é próximo o suficiente para justificar a geração de uma nova chave.
Tipo de mudança disruptiva
Esta alteração é de natureza comportamental .
Motivo da mudança
Esta alteração foi feita por duas razões:
- Para alterar a lógica em torno da geração de chaves perto do tempo de expiração.
- Para simplificar a implementação de um elemento
IDefaultKeyResolver.
Ação recomendada
Se você tiver uma IDefaultKeyResolver implementação que tenta replicar a lógica de expiração, você pode remover essa lógica (no entanto, deixá-la também é bom).
Se estivesse utilizando IDefaultKeyResolver diretamente para determinar se a expiração estava pendente, pode verificar a propriedade da chave padrão ExpirationDate diretamente.
APIs afetadas
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey