2012-03-29 16 views
1

ユーザ情報、ユーザプロファイル情報、ユーザの利用可能なデータベース(特定のデータベースのすべての利用可能なデータベースを含む)を保持するために、単一のLOGINデータベース(SQLフォーム認証)クライアント)、およびユーザの設定/プリファレンスを含む。しかし、ユーザーが最初のデータベースにログオンして接続するデータベースを選択すると、そのユーザーが割り当てられている役割は、接続先のデータベースによって決定されるように、別個のデータベースに別々の役割テーブルを配置する必要があります。役割はデータベースによって異なる場合があり、データベースごとに異なる場合があります。データベーススキーマは、接続されたデータベースごとに同一になります。あなたの提案は何ですか? ありがとう!MVC 3フォーム認証複数のデータベースロールテーブル

答えて

1

最も簡単な方法は、内部的に株式SqlRoleProviderユーザーの現在データベースの正しい接続文字列で初期化を使用するカスタムRoleProviderを実装することであろう。

+0

この例をご存知でしょうか?私はあなたが正しいと思うが、どのようにしてhtisポイントで私には分かりません。 Thaanks! – user1011441

1

ユーザー情報を保持する単一のログインデータベースには、各データベースの役割のテーブルが必要です。どこのロールがそれぞれのデータベースの何にアクセスできるかを決定するロジックがどこにあるかはわかりません。データベースに入れる場合は、それぞれのデータベースに格納する必要があります。ユーザー情報には、ユーザーがジャンクション表を介して各表にアクセスできる役割が含まれている必要があります。

User 
---- 
UserId 
Name 

UserRoles 
--------- 
UserRolesId 
UserId 
AllRolesId 

AllRoles 
-------- 
AllRolesId 
DatabaseName 
RoleName 
関連する問題