.net core AuthenticationHandler вызывает каждый раз, даже если контроллер не требуется Авторизация - PullRequest
0 голосов
/ 03 октября 2018

Я добавил Custom security, он отлично работает для аутентификации.Я не знаю, почему Task<AuthenticateResult> HandleAuthenticateAsync() вызывает контроллер, который не требует авторизации.

В файле Startup.cs ниже приведен код, как я его инициализирую.

public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors();
        services.AddMvc();

        services.AddAutoMapper();

c.AddSecurityDefinition(MM.AuthenticationScheme, new ApiKeyScheme()
            {
                Description = "API Key Authorization header using the mm Api Key scheme. Example: \"MM-API-KEY: {MM-API-KEY}\"",
                Name = "MM-API-KEY",
                In = "header",
                Type = "apiKey"
            });
auth.AddPolicy(MM.AuthenticationScheme, b =>
            {
                b.RequireAuthenticatedUser();
                b.AuthenticationSchemes = new List<string> { MenulogApiKey.AuthenticationScheme };
            });

services.AddAuthentication(options =>
        {
            // the scheme name has to match the value we're going to use in                 options.DefaultAuthenticateScheme = MM.AuthenticationScheme;
            options.DefaultChallengeScheme = MM.AuthenticationScheme;
        })
            .AddMenulogApiKeyAuth(o => { });


    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
         app.UseAuthentication();
         }

В классе KeyHandlerЯ использую так:

internal class MMApiKeyHandler : AuthenticationHandler<MMApiKeyAuthOptions>

1 Ответ

0 голосов
/ 03 октября 2018

(Слепое предположение)

Фильтр аутентификации может быть установлен как глобальный фильтр.

Найдите что-то вроде filters.Add(

или проверьте код где GlobalFilters.Filters используются.

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