Я работаю над веб -приложением ASP.net Core 8. У меня есть сервис для предоставления ключей для подписания JSON Web Tokens (которые будут использоваться для аутентификации). Сервис является зависимостью от аутентификации JWT. < /P>
Мне интересно, как предоставить услугу в настройке аутентификации? Я не могу сделать его в методе Configureservices , потому что попытка сделать это вызовет ошибку.
Вот код (его соответствующие части): < Br />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()
{
// ...
}
}
Есть идеи, как решить эту проблему?
ДОБАВЛЕНО 26 января 2025 г. ->Дополнительный код для типичной настройки аутентификации JWT:
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#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение