Я работаю над веб-приложением ASP.NET Core 8. У меня есть служба предоставления ключей для подписи веб-токенов JSON (которые будут использоваться для аутентификации). Эта служба зависит от аутентификации JWT.
Интересно, как предоставить эту службу в настройке аутентификации? Я не могу внедрить это в методе ConfigurationServices, поскольку попытка сделать это приведет к ошибке.
Вот код (его соответствующие части):public class Startup()
{
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton();
services.AddAuthentication(o =>
{
o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(o =>
{
// ...
// here below I need DI to provide a KeyProvider instance:
IssuerSigningKeyResolver = (s, securityToken, identifier, parameters) =>
//...
});
}
public void Configure()
{
// ...
}
}
есть идея о том, как это решить? br /> больше кода на типичной настройке jwt aylup: < /p>
services.AddAuthentication(o =>
{
o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(o =>
{
o.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "SomeIssuer",
ValidAudience = "SomeAudience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("ABCDEABCDEABCDEABCDEABCDEABCDEABCDE")),
ClockSkew = new TimeSpan(0)
};
});
Подробнее здесь: https://stackoverflow.com/questions/793 ... reservices
ASP.NET Core 8: внедрение зависимостей в Startup.ConfigureServices ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение