私が達成しようとしていることについてのフィードバックを本当にいただければ幸いです。
問題:
- アプリケーションのユーザーに、コントローラーでの1つのアクションを許可したいと思います。例:ユーザーは、必要な権限を持っている場合、私のコントローラークラスで「保存」アクションを実行できます。
- 私が取り組んでいるプロジェクトでは、役割の作成とその承認はクライアント展開チームによって行われ、私の管理下にはありません。そのため、ロール/ユーザーに割り当てることができる「コントロールポイント」にプログラムしますが、アプリケーションはそのコントロールポイントをチェックするだけで済みます。
- コントロールポイントの概念をASP.NetMVCに組み込むにはどうすればよいですか?具体的には、コントローラーのユーザー権限に基づいてビューのボタンを有効/無効にするにはどうすればよいですか?
私の解決策:
- 参照:http : //weblogs.asp.net/fredriknormen/archive/2008/03/12/asp-net-mvc-framework-2-interception-and-creating-a-role-action-filter.aspx-as出発点
- 上記のリンクで説明されているようにロールフィルターを作成する代わりに、モデルを取得して承認チェックを行うControlPointFilterクラスを作成します。
- 私が抱えている問題はViewクラスにあり、現在、ユーザーがViewData[]コレクションでアクセスできるコントロールポイントコレクションを渡しています。
- Viewクラスで、関連するコントロールポイントがViewDataコレクションに存在するかどうかを確認しています(これは好きではありません-Viewクラスのコードを最小限に抑えたい)
- もう1つの問題は、実際のコントロールポイント名がコントローラークラスの属性に設定されているときに、これらの属性をビューに渡し、ビューをクリーンに保つにはどうすればよいですか?
これに答えるためのあなたの時間/努力に役立ち、感謝することを願っています!
サニー