Возврат неавторизованного ViewResult - PullRequest
0 голосов
/ 20 декабря 2018

Итак, я заменил [Authorize Attribute] в функции контроллера на код внутри функции и хотел бы попытаться вернуть тот же результат, что и атрибут, возможно ли это, или мне придется внести дополнительные изменения?

Я пытаюсь вернуть Http 401 Unauthorized из функции, которая возвращает тип ViewResult.

Я уже пытался вернуть Unauthorized, но это не сработает, так как я возвращаю тип ViewResult.

public ViewResult Function([FromQuery] int? Id)
{
   if (!User.HasRole("GenericRole"))
   {
     return _____;
   }
}

Извинения, если я не предоставил достаточно информации для формулирования ответа

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Если вы хотите, чтобы это представление было доступно для любого пользователя, обладающего определенной ролью, то это то, как вы должны это сделать.

    [Authorize(Roles = "Administrator")]
    public ViewResult Function([FromQuery] int? Id)
    {
        return View();
    }

В противном случае, если вы хотите показать это представление для всех ролейкроме одного, сделай так.

    [Authorize]
    public ActionResult Function([FromQuery] int? Id)
    {
        if (!User.HasRole("GenericRole"))
            return new HttpUnauthorizedResult();

        return View();
    }
0 голосов
/ 20 декабря 2018

Вам нужно вернуть

return Unauthorized();

или вы можете выбросить исключение

throw new HttpResponseException(HttpStatusCode.Unauthorized);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...