例
ユーザー「jtirado」には役割「HR-Assistant」が割り当てられており、ルート「mymvcapp / employee / edit / 1452」にアクセスして、従業員(id:1452)データを編集できます。
このユーザーは「HRアシスタント」であるため、従業員の電話番号と電子メールを変更したり、従業員の給与を表示したり、金額を編集したりすることはできません。
電話番号、電子メール、給与はdabataseフィールドであり、ビューでは「asp.net-mvc-control」または「HTML-control」で表されます。したがって、ユーザーの役割に基づいて、これらのコントロールへのアクセスを制限したいと思います。
以前の経験
これは、MasterPage、BasePageクラス、およびRoleBasedAccessControlデータベースモデルを使用して、従来の3層ASP.Net3.5Webフォームアプリケーションに対して以前に実行しました。
MasterPageは、割り当てられた役割に応じて、ユーザーがアクセスできるオプションメニューを作成します。
BasePageクラスは、ユーザーが必要なページにアクセスできるかどうかを確認し、アクセスできる場合は、ユーザーが編集できるコントロール(DdlClientType、TxtLastName、ChkIsActiveなど)を確認します。
このように、パーミッションを確認するためにif-thenセンテンスを使用する必要はありません。また、C#コードを変更することなく、パーミッションを付与して、必要な数のロールを作成できます。
この新しいMVCアプリに同じRoleBasedAccessControlデータベースモデルを使用することを計画しています。
問題
したがって、私の疑問は、ASP.Net MVC 3を使用してMasterPageクラスとBasePageクラスを実装する方法、またはこれを実現する別の方法があるかどうか、そして別の方法で実装する必要があるかどうかについてです。
ViewMasterPageはWeb-Forms-MasterPagesと同等のMVCであるように私には思えます。Razorのレイアウトページについても聞いたことがあります。
とにかく、私はこれらすべてをコントローラーで処理する必要があると思います。
私が使用するのは:
- ASP.NET MVC 3.0
- かみそり
私はこれらの投稿をチェックしました:
フォームフィールドへのアクセスを制御するためのベストプラクティス
しかし、それらは私の場合に完全には適合しません。