Я зарегистрировал IMemoryCache
, вызвав services.AddMemoryCache()
в моем Startup.cs
. Я хочу использовать это в методе расширения IServiceCollection
, где я добавляю аутентификацию JWT.,Ключ подписи для токена хранится в Azure Keyvault, и я хотел бы кэшировать ключ при его получении
public static IServiceCollection AddJWTAuth(this IServiceCollection services)
{
services.AddAuthentication(options=>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(jwt =>
{
jwt .TokenValidationParameters = new TokenValidationParameters
{
IssuerSigningKeyResolver = (token, securityToken, keyIdentifier, tokenValidationParameters) =>
{
// Get signing from KV and add it to memory cache
// Use signing key from cache
}
};
});
return services;
}
Какой хороший способ сделать это?