@Razraaab

Как делать переадресацию если статусный код 401?

Есть аутентификация и авторизация в приложении ASP.NET MVC. Прикрепляю к action в контроллере атрибут [Authorize], если пользователь не авторизован то очевидно выдается статусный код 401, хочу вместо этого кода перенаправлять юзера на страницу регистрации или входа.

Пытался делать это через Middleware, но почему-то он отлавливает все ошибки кроме этой
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
JohnHankok
@JohnHankok
Как вариант воспользоваться методом UseStatusCodePages();

Чет как-то так

app.UseStatusCodePages(async context =>
{
    var response = context.HttpContext.Response;

    if (response.StatusCode == (int)HttpStatusCode.Unauthorized)
       {
        response.Redirect("/account/signin");
       }
});

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Voland69
Настраивать редирект нужно в самой аутентификации, как-то так:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options => //CookieAuthenticationOptions
    {
        options.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Logon");
    });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы