gpt4 book ai didi

.net - 使用C#从Active Directory获取组织单位

转载 作者:行者123 更新时间:2023-12-04 01:48:00 25 4
gpt4 key购买 nike

我要区分正在构建的ASP.NET Web窗体站点上的两种不同类型的用户。

所有用户都在我的广告中,而我区分两者的方式是将它们放在两个不同的组织单位中,即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部分时,它“起作用”。从某种意义上说,广告中的任何人都将得到认证,而不仅仅是组织单位中的成员。

如果我无法避免整个混乱局面,我可能是想我可能允许LDAP路径不包含OU,然后一旦确定该用户是AD的一部分,便会检查该OU是哪个OU。部分。但是,我没有看到OU的属性。 Here's what I would want the code to look like.有没有办法从用户那里获得OU?

谢谢您的帮助!

- - - - - - - - -解 - - - - - - - - -

感谢marc_s:

我相信应该

connectionString="LDAP://test.example.com:389/OU=IPPDB,DC=test,DC=com"  


OU=首先在 DC=部分之前

最佳答案

ou=ippdb,dc=test,dc=com是专有名称。
专有名称由相对专有名称(RDN)的序列构成,并用逗号(,)分隔。
相对专有名称是根据属性值声明构造的,其中声明的左侧是没有选项的属性描述(表示cn;lang-en=Bart Simpson不是有效的相对专有名称,但cn=Bart Simpson是有效的),而右侧是根据属性描述的语法构造的属性。
用作左侧的属性描述必须具有equality matching rule
在相对的专有名称中,左侧(属性描述)通常称为naming attribute


专有名称的构造使得直接上级RDN在其直接下级RDN的右侧(以逗号分隔)。在给定的示例中(假设dc=test,dc=com的常规约定在目录信息树中占上风),ou=ippdb将立即从属于dc=test

关于.net - 使用C#从Active Directory获取组织单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com