4

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

4

1 に答える 1

2

属性をオーバーライドして、特定のメッセージを追加します。

于 2010-04-13T15:54:06.123 に答える