В приложении aspnet.core я добавил следующее промежуточное программное обеспечение: < /p>
app.Use(async (context, next) =>
{
var authService = context.RequestServices.GetRequiredService();
AuthenticateResult result = null;
// Try JWT first
if (context.Request.Headers.ContainsKey("Authorization"))
{
result = await authService.AuthenticateAsync(context, JwtBearerDefaults.AuthenticationScheme);
}
// If JWT fails or wasn't present, try Windows
if (result == null || !result.Succeeded)
{
result = await authService.AuthenticateAsync(context, NegotiateDefaults.AuthenticationScheme);
}
if (result?.Succeeded == true)
{
context.User = result.Principal!;
}
await next();
});
< /code>
Я настраиваю сервисы аутентификации, как это: < /p>
services.AddAuthentication( options =>
{
options.DefaultAuthenticateScheme = NegotiateDefaults.AuthenticationScheme;
})
.AddNegotiate()
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = Configuration.GetValue("TokenValidIssuer"),
ValidAudience = Configuration.GetValue("TokenValidAudience"),
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetValue("SuperSecretKey")))
};
});
< /code>
Приложение размещено в IIS.
Проблема в том, что когда я разрешаю анонимную аутентификацию в IIS вместе с Windows One, аутентификация Windows в промежуточном программном обеспечении останавливается, результат не аутентифицирован.
может кто -нибудь помочь мне, как установить IIS?>
Подробнее здесь: https://stackoverflow.com/questions/796 ... entication