ASP.NET CORE 8: Abhängigkeitsinjektion in startup.configureServices
Posted: 27 Jan 2025, 11:11
Ich arbeite an einer ASP.NET Core 8 -Web -App. Ich habe einen Service für die Bereitstellung von Schlüssel zur Unterzeichnung von JSON -Web -Token (die zur Authentifizierung verwendet werden). Der Dienst ist eine Abhängigkeit der JWT -Authentifizierung. Ich kann es nicht in der Methode configureservices di - Br />
Irgendeine Idee, wie man dies löst? Br /> Mehr Code für ein typisches JWT -Auth -Setup: < /p>
Code: Select all
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()
{
// ...
}
}
Code: Select all
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)
};
});