[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]属性をオーバーライドする必要がありますか?