0

「管理」機能(作成、更新、削除)であるさまざまなコントローラーのアクションのリストがありますが、同じコントローラーの他のアクションは管理アクションではありません。

私がやりたいことは、フィルター属性/Admin/を持つアクションを呼び出すすべての URL の前にプレフィックスを付けるルートを作成することです。Authorize

これは可能ですか?

4

1 に答える 1

0

はい、すべて可能ですが、やりやすいということですか?答えはノーです。独自のルートを作成し、このカスタマイズされたルートをルート マッピングに追加する必要があります。これは難しいことではありませんが、コントローラーの前にルートが初期化されるという問題が発生するため、条件を確認するためにルックアップとリフレクションを自分で処理する必要があります。

別のオプションがあります。ActionMethodSelectorAttribute を使用して、アクション メソッドのカスタム セレクターを作成し、Authorize 属性を含まないセレクターを無視することができます。使用されているこの属性の例は、ActionVerbAttribute です。

最も簡単な方法は、独自のチェックを行う Html.ActionLink のカスタム拡張機能を作成し、それを表示専用として保持し、Global.asax で同じコントローラーのデュアル ルートを作成することです。

于 2009-05-14T13:49:30.637 に答える