私はMVCを初めて使用し、ASP.NET MVC 4を使用してアプリケーションを開発しています。認証には、ドメイン内のActive DirectoryでWindows認証を使用しています。次のステップは、(メンバーシップを使用せずに) ユーザーを承認することです。いくつかの記事を読みましたが、まだ良いアプローチを見つけています。
私は独自の 3 つのデータベース テーブル ( Users
、Roles
、UserRoles
) を持っており、いくつかの管理者レベルで承認されたユーザーを維持しています。それは多対多です。たとえば、「管理者」(作成権限を持つシステムへのフル アクセス)、「データ オペレーター」(セクションのみの更新権限)、「サポート ユーザー」(読み取り専用/表示専用アクセス) が存在する場合があります。これは多対多であるため、ユーザーは「サポート ユーザー」であると同時に「データ入力オペレーター」でもあります。
特定のセクションでは、メソッドに基づいてアクセスを制御する必要があります。たとえば、「InvoiceController」というコントローラーがあるとします。以下のような方法が考えられます。
CreateNewInvoice() // Accessible only by admin
UpdateInvoice(...) // Accessible for admin and data operator
ViewInvoice(...) // Accessible for admin, data operator and support user
(役割テーブルに存在するユーザーのみがシステムにアクセスできます。それ以外のユーザーのアクセスは拒否されます。)
データベースに保存されているロールに基づいて、メソッド レベルで認証を使用する方法を教えてください。