статические файлы - asp.net web api core 2.1 схема аутентификации Bearer - PullRequest
0 голосов
/ 28 июня 2018

Как я могу избежать проверки подлинности статических файлов?

Для каждого запроса статического файла (images, .js, .css и т. Д.) Сообщение регистрируется с помощью «AuthenticationScheme:« Bearer »не был аутентифицирован». Хотя сообщение просто регистрируется, когда конфигурация настроена на отладку, ресурсы, потраченные на это, просто не нужны.

Все отлично работает, я просто хочу избежать проверки подлинности по этим запросам. Есть ли способ отключить это? Я пробовал несколько вариантов того, где установлена ​​аутентификация в методе Configure, но ничего не получалось.

Это моя текущая конфигурация:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        var locOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
        app.UseRequestLocalization(locOptions.Value);

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");                
        }

        app.UseStaticFiles();
        app.UseSpaStaticFiles();
        app.UseCors("default");
        app.UseAuthentication();
        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller}/{action=Index}/{id?}");
        });    

        app.UseSpa(spa =>
        {                
            spa.Options.SourcePath = "ClientApp";

            if (env.IsDevelopment())
            {
                spa.UseReactDevelopmentServer(npmScript: "start");
            }
        });            

        DataAccessLayer.WebHelpers.Configure(app.ApplicationServices.GetRequiredService<IHttpContextAccessor>());
    }

1 Ответ

0 голосов
/ 29 июня 2018

Хорошо, получил его, разветвив конвейер запросов, применив авторизацию только к пути '/ api':

        //app.UseAuthentication();
        app.MapWhen(x => x.Request.Path.Value.StartsWith("/api"), builder =>
        {
            builder.UseAuthentication();
            builder.UseMvcWithDefaultRoute();     
        });

        app.MapWhen(x => !x.Request.Path.Value.StartsWith("/api"), builder =>
        {
            builder.UseMvcWithDefaultRoute();
            builder.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp";
                if (env.IsDevelopment())
                {
                    spa.UseReactDevelopmentServer(npmScript: "start");
                }
            });
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...