Как настроить перенаправление при получении кода ответа 401?

Как можно перенаправить пользователя на страницу регистрации или входа в приложении ASP.NET MVC, если он не авторизован, вместо отображения статусного кода 401, который получает по умолчанию?
  • 18 июня 2024 г. 10:51
Ответы на вопрос 2
Для настройки перенаправления при получении кода ответа 401 в ASP.NET MVC можно использовать атрибут [Authorize] для контроллеров или методов, к которым требуется авторизация.

Для перенаправления пользователя на страницу регистрации или входа можно создать специальную страницу с сообщением об ошибке и ссылкой на страницу авторизации. Затем в файле Web.config можно настроить кастомную страницу для отображения при получении кода ответа 401:

```xml
<customErrors mode="On" defaultRedirect="Error">
  <error statusCode="401" redirect="Unauthorized"/>
</customErrors>
```

Теперь при получении кода ответа 401 пользователь будет автоматически перенаправлен на страницу Unauthorized, где он сможет войти или зарегистрироваться.
Настраивать редирект нужно в самой аутентификации, как-то так: 
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options => //CookieAuthenticationOptions
    {
        options.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Logon");
    });
Похожие вопросы