我想在我正在构建的 ASP.NET Web 窗体站点上区分两种不同类型的用户。
所有用户都在我的 AD 中,我区分两者的方法是将它们放在两个不同的组织单元中,称为:LRDB和IPPDB。
当我尝试使用此 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=
零件之前