asp.netメンバーシップ、ロールプロバイダーなどの設定については、たくさんの質問(および情報)があります。マイクロソフトが提供する組み込みのプラットフォームを使用するか、基本クラスを拡張して独自の役割を使用するかどうか。
デフォルトのプロバイダーを拡張し、独自のメンバーシップおよびロールプロバイダーを実装することにしました。さて、私の質問は、特に役割認証に関するものです。
従来は、「マネージャー、管理者、従業員、スーパーユーザー」などの役割を作成していました。しかし、私がより細かい制御であると考える許可に関して、あなたはどうしますか/すべきですか?詳しく説明させてください。
私のasp.netmvcサイト内には、管理、管理、メッセージング、レポートなどのさまざまな領域があります。「管理者」、「マネージャー」、「レポーター」など、それぞれの役割を作成します。適切な役割がないと、次のことができます。サイトのその領域にアクセスできません。したがって、クラスレベルでこれを使用してコントローラー全体をロックダウンします。
しかし、ここで例として1つの領域を取り上げます。メッセージング、およびCRUDに対してよりきめ細かい権限が必要だと言います。メッセージの作成、メッセージの表示/読み取り、メッセージの編集、メッセージの削除など。
最後に私の質問。このより細かい制御をどのように実装するのが最善でしょうか?私が見ているアプローチの1つ(それが良いものかどうかはわかりません)は、すべてに対してasp.netメンバーシップロールを作成することです。だから私は持っているかもしれません...
メッセンジャー(幅広いレベルの役割)、CreateMessage、ReadMessage、EditMessage、DeleteMessage。
一方では、一部のユーザーがメッセージを読んだり表示したりできるようにしたいと思います。ただし、必ずしもそれらを作成または削除する必要はありません。個々のコントローラーアクションには、特定の役割を適用できます。
このアプローチに問題はありますか?もっといいアイデアはありますか?
これまでの解決策
独自のスキーマを作成し、カスタムメンバーシップとロールプロバイダーを実装することにしました。私のスキーマには以下が含まれます。
- ユーザー
- UserProfile
- 許可
- PermissionAssignment
- 役割
- RoleAssignment
翌日か2日は不在になりますが、機会があれば詳細情報を更新します。