Как всегда возвращать логин / вход в систему, когда я не авторизован в asp. net core mvc? - PullRequest
0 голосов
/ 03 марта 2020

У меня проблема с реализацией функциональности, которая всегда возвращает представление для входа, когда я не авторизован. Мой проект создан в ASP. NET CORE MVC 3.1 с JWT Bearer. Я могу войти в систему, когда я go напрямую смотрю Login.cs html (после нажатия кнопки «Войти»), а затем мои методы с атрибутом [Autorize] работают нормально. Я хотел бы всегда возвращать представление для входа, когда я go к методу с атрибутом [Authorize].

Я нашел несколько примеров с cook ie, которые возвращают знак в представлении, но Я использую JWT Bearer с сеансом, и я не знаю, нужно ли это. Заранее благодарим за помощь.

Ответы [ 2 ]

1 голос
/ 05 марта 2020

В итоге я нашел способ, который работает в. NET Core 3.1. Этот код перенаправляет на страницу входа / входа, когда код статуса 401 - неавторизован.

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

   if (response.StatusCode == (int)HttpStatusCode.Unauthorized)
   {
    response.Redirect("/Home/Login?returnUrl=" + request.Path);
   }

});

0 голосов
/ 03 марта 2020

Каждый раз, когда вы вызываете API с атрибутом authorize, если токен на предъявителя истек, вы должны возвращать 401 - Несанкционированный код ошибки вызывающей стороне. Как только вы получите код ошибки 401, вы можете перенаправить на страницу входа только со своим логином внешнего интерфейса c.

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