DefaultAuthenticateScheme игнорируется, и контроллер возвращает неавторизованный - PullRequest
0 голосов
/ 03 августа 2020

Я использую JWT Bearer Authentication и устанавливаю его по умолчанию следующим образом:

// Authentication setup
services
    .AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
    })
    .AddJwtBearer(options =>
    {
        ...
    });

И вот что мне нужно использовать авторизацию на моем контроллере: * К сожалению, это не работает, и вместо этого я должен использовать следующее:

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase {
    ...
}

Может кто-нибудь объяснить мне, как я могу избежать добавления AuthenticationScheme к каждому контроллеру?

1 Ответ

0 голосов
/ 03 августа 2020

После нескольких часов поисков это оказалось довольно просто. Единственное, что вам нужно сделать, это переключить конвейер на следующее:

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();
});

Важно иметь UseAuthentication перед UseAuthorization.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...