1

現在、私のasp.netアプリには5つのActiveDirectoryMembershipProviderと1つのSqlMembershipProviderがあります。これらの数は両方とも、近い将来、少なくともいくらか増加するはずです。問題は、認証対象のドメインの一部が不安定であるということです。したがって、たとえば、5人に1人は、日曜日に30分間到達できない可能性があります。その間にプロバイダーのユーザーがログインしようとすると、Providersコレクションがエラーをスローするため、ログインできません。したがって、1つがダウンしている場合、それらはすべてダウンしています。楽しくない。

私はこれにアプローチするために約72の異なる方法を試しましたが、運がありませんでした。これが私のトップ3です。

1:それらすべてをweb.configに追加し、ログイン制御認証をオーバーライドして、すべてのMembership.Providersをループします。一致するまでValidateUser。上記の問題がない限り、うまく機能します。1つがダウンしている場合、コレクションはうんちを出し、誰も入りません。

B.デフォルトプロバイダーに対してのみ認証します。使用するプロバイダーをユーザーに選択させ、WebConfigurationManagerを使用してそれをデフォルトのプロバイダーに変更します。実行時に実際にweb.configファイルを変更していることを除けばかなり素晴らしいです...おっと!私はそれをしましたか?

III。ドメインユーザーがログインを希望していることを確認するカスタムプロバイダーは、Initiate()で、web.config以外のソースから適切な構成値を提供します。すべての個別のプロバイダー情報を含むDBテーブル。次に、カスタムプロバイダーで常にValidateUserを実行します。その後、ユーザーが選択したドメイン/プロバイダーをチェックし、情報をプラグインおよびプラグオフします。これは、ログアウトしてからdiffドメインでログインする場合を除いて機能します...以前に選択した他のドメインに既に初期化されているため、これを行うことはできません。

多分私は簡単な何かを逃していますか?そうだといい。StackOverflow、あなたは私の唯一の希望です。

4

0 に答える 0