Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
DefaultKeyResolution.ShouldGenerateNewKey não reflete mais se a chave padrão está perto do tempo de expiração.
Versão introduzida
ASP.NET Core 9.0 Versão Prévia 3
Comportamento anterior
Era um recurso não documentado, mas consistente, da API que ShouldGenerateNewKey era true se a chave padrão estava dentro de dois dias (uma simplificação excessiva) de seu tempo de expiração. A quantidade de tempo de antecedência foi baseada no intervalo de sondagem de ICacheableKeyRingProvider, e IDefaultKeyResolver.ResolveDefaultKeyPolicy não deveria depender disso (visto que, por exemplo, implementações alternativas provavelmente não estariam cientes desses detalhes).
Novo comportamento
A partir do .NET 9, se ShouldGenerateNewKey estiver true, indica que não há 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 decide por si próprio se o tempo de expiração está próximo o suficiente para justificar a geração de uma nova chave.
Tipo de mudança disruptiva
Esta é uma alteração comportamental.
Motivo da alteração
Essa alteração foi feita por dois motivos:
- Para alterar a lógica da geração de chaves próximo ao momento da expiração.
- Para simplificar a implementação de um
IDefaultKeyResolverpersonalizado.
Ação recomendada
Se você tiver uma implementação IDefaultKeyResolver que tente replicar a lógica de expiração, poderá remover essa lógica (no entanto, deixá-la também está bem).
Se você estava consumindo IDefaultKeyResolver diretamente para determinar se a expiração estava pendente, poderá verificar diretamente a propriedade ExpirationDate da chave padrão.
APIs afetadas
Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.DefaultKeyResolution.ShouldGenerateNewKey