2

私のアプリケーションには、チームごとに異なるレベルで保護する機能が必要です。たとえば、あるチームの管理者が別のチームの閲覧者である場合があります。

理想的には、1 つの小さな役割のセットを持ちたいのですが、チームごとに個別の役割に人を割り当てたいと考えています。つまり、"Joe" は TeamA の管理者ですが、TeamB の閲覧者アクセス権を持っている場合があります。

Asp.Net プロバイダー フレームワークはこれをサポートしますか?

--マット

更新: 私の問題は「IsInRole」メソッドにあります。単一のパラメーターを取ります。ハッキング (チーム ID と役割名などの 2 つの項目を連結する) 以外に、これを実現する方法はありますか?

4

2 に答える 2

1

私が知る限り、RoleProviderクラスがどのように機能するかという点で役割にグループはありませんが、データソースにグループ化構造を実装できない理由はありません。ただし、RoleProvider はさまざまなアプリケーション名をサポートしているため、これを使用して、異なるものとして識別され、異なるロールが割り当てられている論理グループにアプリケーションをセグメント化する何らかの方法を考え出すことができる場合があります。

編集:

編集に応じて、データベースで次のような構造にすることができます

Group Table           Access Table           Role Table
id | name             id | name              group_id | access_id | name
-----------           ------------           ---------------------------
1    Team A           1    Guest              1          1         Team A Guest
2    Team B           2    User               1          2         Team A User
                      3    Admin              1          3         Team A Admin

新しい行が挿入されたときにテーブルname内のフィールドを更新するメカニズムがあります。Role

カスタム RoleProvider の実装は非常に簡単です。必要なメソッドを継承しRoleProviderてオーバーライドし、RoleProvider がデータを取得する場所のロジックを記述するだけです。

于 2009-09-08T21:19:22.007 に答える
0

箱から出してすぐではありません。この機能をサポートするには、カスタム プロバイダーを作成する必要があります。

カスタム メンバーシップ プロバイダーを作成する例を次に示します http://www.asp.net/learn/videos/video-189.aspx

于 2009-09-08T21:15:47.497 に答える