2

アクション メソッドの AuthorizeAttribute をカスタマイズするための拡張クラスを作成しました。特定の条件が満たされたときにビューにメッセージを挿入できるようにしたいと考えています。ユーザーが承認されていないときに共有ビューをロードするために以下のコードを使用していますが、ViewData コレクションにメッセージを追加していません。何かアイデアはありますか?

public override void OnAuthorization(AuthorizationContext filterContext)
{
    base.OnAuthorization(filterContext);
    if (IsNotAuthorized)
    {
        filterContext.Result = new ViewResult { ViewName = "NotAuthorized" };
        filterContext.Controller.ViewData["Message"] = "Go Away";
    }
}

ViewData["Message"] コレクション項目を呼び出しの上に設定して、ビューを変更しようとしましたが、成功しませんでした。

4

1 に答える 1

0

やってみました;

filterContext.Result = new RedirectResult("Home/Index");

ViewDataを追加する方法はわかりませんが、少なくとも許可されていないコントローラーに移動します。

その間、または誰かが投稿するまで、データを表示するために追加するコードを探し続けます。

編集

これは役立つかもしれません。

カスタムフィルター属性のActionExecutingContext値の変更

于 2010-01-11T22:03:08.477 に答える