Отобразить сообщение авторизации для действия для атрибута [Authorize] - PullRequest
4 голосов
/ 13 апреля 2010

Есть ли способ отобразить сообщение авторизации конкретного действия, когда атрибут [Authorize] или [Authorize(Roles="Administrator")] перенаправляет пользователя на страницу входа?

В идеале,

[Authorize(Roles="Administrator", Message="I'm sorry Dave. I'm afraid I can't let you do that.")]
public ActionResult SomeAdminFunction()
{
    // do admin stuff
    return View();
}

Насколько я понимаю, атрибуты не предназначены для добавления функциональности, но это кажется чисто информационным. Можно сделать это внутри действия, но это выглядит не элегантно по сравнению с использованием атрибута.

В качестве альтернативы,

if (!Request.IsAuthenticated)
{
    if (!User.IsInRole("Administrator"))
        SetMessage("You need to be an administrator to destroy worlds."); // write message to session stack
    return RedirectToAction("SignIn", "Account");
}

Существует ли способ сделать это или мне нужно переопределить атрибут [Authorize]?

1 Ответ

2 голосов
/ 13 апреля 2010

Я бы переопределил атрибут, чтобы добавить свое конкретное сообщение.

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