メンバーシップ セキュリティ ログイン ロールに基づいて、マスター ページにメニュー項目を動的に追加したいと考えています。私が読んだことから、マスターページhtmlのRenderActionはおそらくこれを行うことができます。私はこれを手探りしているので、それがどのように見えるのか、コントローラーで現在の役割をどのように確認するのかわかりません。テーブルを作成し、許容されるメニュー項目をロール関係に関連付けて、動的メニュー項目をレンダリングするためにマスター ページに渡すことができるようにすることを検討しています。
3 に答える
コントローラーでは、メニューのモデルである MenuModel クラスなどを作成します。データのみのクラスになります。現在のユーザーのアクセス許可を考慮して、コントローラーで作成して入力します。これにより、セキュリティ コードが正しいことを確認する単体テストを作成できます。
次に、それを ViewData 経由でビューに渡します。これを、MenuModel クラスに基づいてメニューをレンダリングする方法を知っているヘルパー メソッドと組み合わせます。
これらの「ロール」が ASP.NET メンバーシップ ロールである場合、通常の LoginView コントロールを RoleGroup タグで使用できます。MVCで問題なく動作することがわかりました。「役割」が何か異なる場合 (たとえば、モデル内の何か)、Haacked が書いていることを実行します。
これがあなたが探しているものかどうかはわかりませんが、数週間前に同じような質問がありました:
「セキュリティがトリミングされた」html.ActionLink 拡張メソッドの作成がスタックする
これにより、Authorize 属性を介してメニュー項目へのアクセスを制御するマスター ページ (またはその他のページ) のメニューを拡張することができました。
これを行うための私のコードは次のとおりです。