メンバーシップとロールのジレンマ - マルチテナントにシングルDB ASP.NETサイトを変換します

StackOverflow https://stackoverflow.com/questions/483414

質問

私は、各クライアントが独自のデータベースを持っているマルチテナントアプリに単一のSQL DBのウェブサイト(ASP.NET/VB.NETを)変更処理にアップしています。

古いサイトでは、すべてのASPの役割、ログインおよびプロバイダは、単一のデータベースを指摘します。

は、今、私たちは、私は最高のアーキテクチャ/技術を使用するだろうか思ったんだけど、複数のデータベースを持っています。そのような会社名、各種設定(つまり、通常はweb.configファイルになります)、そのテナントデータベースへの接続文字列などのテナントを設定するデータベースが1つあります。

私たちは、テナントを設定し、単一のデータベース内のすべてのメンバーシップ&役割のものを持っているか、私たちは、個々のテナントデータベースのメンバーシップ&役割を持っているべきですか?私は、ASP.NETが唯一のweb.configファイルで定義されたRoleProvidersの1セットを好きだと思うので、オプション2は、トリッキーなようです。

誰もが前にこれを試してみましたかいずれかの勧告を持っていますか?

役に立ちましたか?

解決

あなたはビルトインのプロバイダでASP.Netメンバーシップモデルを使用している場合は、1 DBにそれらを置くことは、あなたが示すように、最も簡単です。

一つの選択肢、と私はこれを試していませんでした、あなたのweb.configファイル内の各テナントのプロバイダを定義することです。これは、各テナントが自分の会員DBを持つことができるように、そして(これが要件である場合)は、テナント間でのユーザー名の衝突を回避できるようになります。

他のヒント

あなたは、実行時にASP.NETメンバーシップデータベース接続文字列を設定することができるはずです。 このスレッドには、早期のカスタムメンバシッププロバイダを含む、または値を変更するいくつかのオプションを持っていますGlobal.asax.csを介して要求ライフサイクルのます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top