У меня есть 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 локально, я получаю следующее, которое работает, как я ожидаю:
Код в моем 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, я получаю следующее:
Есть ли что-то, что я тоже упускаю, потому что моя страница клиента 403 не отображается, когда мое приложение развернуто на Azure?