私のMVC3 アプリケーションでは、マネージャー、システム管理者、編集者などのASP.NET メンバーシップの役割があります。Web サイトにWindows 認証を 使用しており、次の例のように、ネットワーク内のユーザーをメンバーシップに追加しています。
しかし、私の問題は、複数の権限が必要な人がいるということです。例えば
User-Johnは Department-ABC のマネージャーであり、Department-ABC のすべてのアクションを表示できます。 User-JohnはDepartment-XYZ の編集者でもあり、Department-XYZの編集者のすべてのアクションを表示できるはずです。ただし、マネージャーのアクションではありません。彼は Department-XYZ のマネージャーではないためです。
ユーザー Mathew は部門 XYZ のマネージャーであり、部門 ABC の編集者です。
通常のロール権限を使用すると、User-John が両方の部門のマネージャーになることができますが、これは正しくありません。
私の解決策は、DepartmentID、UserID、および RoleID を SQL データベースの別のテーブルに格納し、このテーブルに従って許可することです。
C# および SQL で ASP.NET メンバーシップからロール ID を取得するにはどうすればよいですか?
それは安全ですか?より良い解決策はありますか?