Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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