Страница 401 и 403 Custom Error не отображается при развертывании приложения в Azure - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть ASP. NET Core WebApp. AuthN и AuthZ в приложении обрабатываются AAD - если пользователь пытается перейти на страницу сайта и не входит в правильную группу AAD, я пытаюсь использовать промежуточное программное обеспечение и страницу рендеринга и NotAuthorized.

In мой класс запуска в методе Configure у меня есть следующий код:

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseWhen(context => !context.Request.Path.StartsWithSegments("/api"), appBuilder =>
            {
                appBuilder.UseStatusCodePagesWithReExecute("/Error/{0}");
                appBuilder.UseExceptionHandler("/Error");
            });

            app.UseHsts();
        }

Для локального теста IIS я закомментировал блок if и развернул его в моем локальном IIS, а в мои AppSettings только добавил группу AAD, которую я знаю Я не являюсь участником - когда я нажимаю на URL локально, я получаю следующее, которое работает, как я ожидаю:

enter image description here

Код в моем ErrorController как показано ниже:

public class ErrorController : Controller
{
    [Route("error/404")]
    public IActionResult ErrorNotFound()
    {
        return View();
    }

    [Route("error/401")]
    [Route("error/403")]
    public IActionResult ErrorNotAuthorized()
    {
        return View();
    }

    [AllowAnonymous]

    public IActionResult Index()
    {
        return View("Index", Activity.Current?.RootId);
    }
}

Однако, когда я внедряю тот же код в Azure, когда я нажимаю на тот же URL, я получаю следующее:

enter image description here

Есть ли что-то, что я тоже упускаю, потому что моя страница клиента 403 не отображается, когда мое приложение развернуто на Azure?

1 Ответ

0 голосов
/ 26 февраля 2020

Я понял это с помощью этого ответа -

ASP. net -core 3.0 - возможно ли вернуть страницу с пользовательской ошибкой, когда пользователь отсутствует в политике?

В основном 401 или 403 не обрабатываются промежуточным программным обеспечением, поэтому я написал свой собственный

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