Есть ли способ отобразить сообщение авторизации конкретного действия, когда атрибут [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]?