構築中の ASP.NET Web フォーム サイトで、2 種類のユーザーを区別したいと考えています。
すべてのユーザーは AD 内にあり、この 2 つを区別する方法は、それらをLRDBとIPPDBという 2 つの異なる組織単位に配置することです。
この LDAP パスを使用してログイン時にそれらを検証しようとすると:
<add name="ADConnectionString" connectionString="LDAP://test.example.com:389/DC=test,DC=com,OU=IPPDB" />
次のようなサーバー エラーが表示されます。
説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下の特定のエラーの詳細を確認し、構成ファイルを適切に変更してください。
パーサー エラー メッセージ: 操作エラーが発生しました。
そして、メンバーシップ プロバイダーがある行が、エラーの発生元として強調表示されます。
<add enableSearchMethods="true" connectionStringName="ADConnectionString" name="MembershipADProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
ただし、LDAP パスを変更して OU 部分を除外すると、「機能します」。組織単位内のメンバーだけでなく、AD 内にいるすべての人が認証されるという意味で機能します。
この混乱を避けることができない場合は、LDAP パスに OU がないことを許可することができるのではないかと考えていました。ユーザーが AD の一部であることが判明したら、それがどの OU であるかを確認します。一部の。ただし、OU のプロパティが表示されません。これが私が望むコードの外観です。ユーザーから OU を取得する方法はありますか?
助けてくれてありがとう!
-----------------解決策------------------
marc_s に感謝:
そうあるべきだと思います
connectionString="LDAP://test.example.com:389/OU=IPPDB,DC=test,DC=com"
OU=
まずはDC=
パーツの前に