0

ユーザー管理と役割管理を処理するために、すぐに使用できるAsp.Netメンバーシップ機能を使用しています。特定のプロバイダーを使用するようにメンバーシッププロバイダーを設定する

私のアプリケーションはクライアントごとに1つのデータベースで構成され、各データベースには独自のメンバーシッププロバイダとロールプロバイダがあります。

しかし、複数のクライアントで作業するユーザーがいます。単一のログインを使用して、表示するクライアントを選択できるようにする場合があります。私は、すべてのユーザー名とそれらがアクセスできるクライアントとの関係を格納する中間データベースを使用して、この「クライアントの切り替え」を容易にするためのすべての設定を行っています。また、あるデータベースのユーザーに対する更新が、他のデータベースのすべての対応するユーザーを更新するようにセットアップしました。このロジックはすべて、ASP.Netに特定のMembershipProviderに変更してそれを使用するように指示する方法を見つけることができないことを除いて、非常にうまく機能しています。

私は、私が使用する必要があると思ったプロセスは、(ユーザーがクライアントのドロップダウンメニューで、クライアントスイッチの場合)、次のとおりです。

  • ログアウトして、現在のユーザー
  • ASP.Netを知らせるメンバシッププロバイダを使用することを(選択されたドロップダウンで選択されたクライアントをもと)
  • 彼らは
ドロップダウンを変更したとき、彼らは見ていたページにリダイレクト/選択したクライアントのメンバシッププロバイダを使用して、現在のユーザーがログインして、リフレッシュ

特定のメンバーシッププロバイダ(Membership.Providers [MembershipProviderName])への参照を取得する方法を知っていますが、ASP.Netにメンバーシッププロバイダを変更するよう指示する情報はありません。私はasp.net Loginコントロールがこれをバックグラウンドでどのようにしているか、実際にはこのことすべてで私を助けてくれるかもしれません。

私はSOとWebをしばらく検索していましたが、Web.configのProviders要素のDefaultProvider属性を変更しようとしているスレッド以外に、これを行うことについて多くのことを見つけることはできませんでした。

答えて

0

こちらはMSDN tutorialです。

+0

チュートリアルありがとうございます。私はいくつかのものを見てきましたが、それは私が見た中で最高のものの1つです。結局、私はカスタムメンバーシッププロバイダを避けようとしていました。しかし、私がプロバイダについて読んでいるほど、私のアプローチが実際には複数のプロバイダモデルが意図したものではないことがわかります。現時点では、クライアントDBのすべての重複したユーザーは常に同じデータを持っているので(アプリケーションロジックのおかげで)、私はちょっと騙して、asp.netが選んだプロバイダ(UserId、要求に応じて特定のプロバイダから取得する必要があります)。 –

関連する問題