0

独自の認証クラスを作成するかどうかについて議論しています。ほぼ完了ですが、ロール プロバイダー (カスタムまたはデフォルト) を使用する方がよいと思います。ユーザーをロールに割り当て、現在のロールに基づいてユーザーに情報を表示できることはわかっています。しかし、タスクに基づいてアクセス許可を割り当てたい場合はどうすればよいでしょうか? たとえば、編集者の役割で他の人の投稿を変更できるようにしたい場合と、そうでない場合があるとします。これは単純な状況ですが、大量の役割 (編集者、編集者のすべての投稿など) を使用する代わりに、より細かいレベルの承認を行いたいと考えています。これは、カスタム asp.net 役割プロバイダーを使用して可能ですか?自分のシステムを完成させ続けるべきですか?

4

2 に答える 2

2

基本的な ASP.NET ロール プロバイダーはフラットな構造であるため、ユーザーはメンバーであるすべてのロールに属する必要があります。

階層をサポートするロール プロバイダーを見つけて作成する必要があります。これらのプロバイダーと連携するフレームワークの他の側面 (ログイン コントロール、構成承認/アクセスなどの設定)。

本当にあなたは次のようなものが欲しいです:

  • ユーザーの役割 - フォーラムに投稿でき、自分の投稿を編集できます。
  • 編集者の役割 - ユーザーができることは何でもでき、他の投稿を編集できます。
  • 管理者の役割 - 編集者ができること、およびその他の管理業務を行うことができます。

したがって、ユーザーが編集者の役割にある場合、ユーザーとしての権限が自動的に付与されます。

次に、次のいずれかを選択します。

  1. フォーラムごとにこれらの役割を複製し、ユーザーを割り当てます。
  2. 「ForumEdit」と「ForumAdmin」などのいくつかのプロパティをユーザー プロファイルに追加し、そこに編集/管理できるフォーラムのリストを保存します。

(1) の利点は、ユーザーが管理/編集タスクを実行できるかどうかを確認するために 1 つのチェックを実行するだけでよいことですが、これらすべてのロールを管理するオーバーヘッドが高くなります。

(2) の利点は、役割を簡単に管理できることです。編集者グループからユーザーを削除できます。たとえば、ユーザーはすべての編集者権限を失いますが、実際にその編集者であるかどうかを判断するためのコストが高くなります。プロフィールを照会する必要があるため、フォーラム。

this one hereと同様の答えが本当にあります。

于 2009-08-27T12:50:35.850 に答える