То, что List ____ () в возврате контроллера MVC для пользователя не авторизован? - PullRequest
0 голосов
/ 03 марта 2019

Итак, у меня есть этот код в моем StuffController.cs

[HttpGet, Route]
[Authorize(nameof(Access))]
public async Task<ActionResult> ListStuff()
{
    var canRead = HasAccess(new AccessLevels
    {
        Stuff = AccessLevel.Read
    });
}

Поскольку тип возвращаемой функции - ActionResult, что он должен вернуть, если 'canRead' - false?В идеале я хочу, чтобы оно показывало сообщение (что-то вроде «Вы не авторизованы, пожалуйста, запросите у администратора одобрение»), если пользователь пытается перейти на эту страницу, но не имеет авторизации.

1 Ответ

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

401 - код статуса для неавторизованных ответов.

Одним из возможных решений является создание исключения с кодом состояния 401 с помощью сообщения, подобного следующему:

throw new HttpResponseException(
  new HttpResponseMessage(HttpStatusCode.Unauthorized)
   { 
      ReasonPhrase = "You're unauthorized, please ask admin for approval" 
   });

Другое решение:

return new HttpStatusCodeResult(401, "You're unauthorized, please ask admin for approval");

Другое:

Response.StatusCode = 401;
return Content("You're unauthorized, please ask admin for approval");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...