Промежуточное программное обеспечение не вызывается, когда ожидается в .net core 2.1 - PullRequest
0 голосов
/ 21 ноября 2018

В моем файле startup.cs в моем методе настройки у меня есть следующее:

public void Configure(IApplicationBuilder app)
    {
        if (HostingEnvironment.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            //TODO: Create an exception handler controller...
            app.UseExceptionHandler("/Home/Error");
        }

     //   app.UseRewriter(new RewriteOptions().AddRedirectToHttpsPermanent()); //required to force URL to https

        app.UseStaticFiles();
        app.UseSession();

        app.UsePartialPageRendering();

        app.Use(async (context, next) =>
        {
            await next.Invoke();
            if (context.Response.StatusCode == 401)
            {
                context.Response.Redirect("/user/sign-in");
            }
        });


        app.UseMvc();
        // Log the environment so we can tell if it is correct.
        Logger.LogInformation($"Hosting environment: {HostingEnvironment.EnvironmentName}");
    }

Затем в фильтре авторизации у меня есть некоторый код, и в некоторых условиях у меня есть:

var authorisationCookie = _httpContext.HttpContext.Request.Cookies.Where(t => t.Key == "aut").FirstOrDefault();
        //no valid cookie
        if (authorisationCookie.Key == null)
        {
            //Kill the pipeline so that view doesn't get displayed.
            context.Result = new UnauthorizedResult(); //should be this, but trouble handling it client side.

            return;
        }

Когда эта строка нажата, если я использую инструменты разработчика Google, я вижу, что 401 возвращается правильно, но мой конвейер выше никогда не попадет.Как мне нужно изменить это так, чтобы каждый раз, когда 401 вызывался из моего приложения, происходило перенаправление?

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