将 ASP.NET ActiveDirectoryMembershipProvider 与林一起使用
Posted
技术标签:
【中文标题】将 ASP.NET ActiveDirectoryMembershipProvider 与林一起使用【英文标题】:Using ASP.NET ActiveDirectoryMembershipProvider with a Forest 【发布时间】:2009-08-03 17:59:25 【问题描述】:我正在尝试设置一个 ActiveDirectoryMembershipProvider 来对抗森林,但我似乎无法让它工作。我们的一位 AD 管理员建议我参考全局目录,但似乎不受支持。任何人都知道您是否可以,如果可以,您如何配置 AD 成员资格提供程序以对抗森林?
以下是我尝试过的一些排列以及由此产生的错误。
<add name="ADConnectionString1"
connectionString="LDAP://domain.org/DC=domain,DC=org:3268" />
“从 服务器”
<add name="ADConnectionString2"
connectionString="LDAP://domain.org/DC=domain,DC=org:" />
空引用异常。
<add name="ADConnectionString3"
connectionString="LDAP://domain.org" />
空引用异常
<add name="ADConnectionString4"
connectionString="LDAP://domain.org:3268" />
"GC 端口上的 LDAP 连接是 不支持 Active 目录。”
<add name="ADConnectionString5"
connectionString="LDAP://domain.org:3268/DC=domain,DC=org:3268" />
"GC 端口上的 LDAP 连接是 不支持 Active 目录。”
<add name="ADConnectionString6"
connectionString="LDAP://domain.org:3268/DC=domain,DC=org" />
"GC 端口上的 LDAP 连接是 不支持 Active 目录。”
【问题讨论】:
【参考方案1】:我目前无权测试 ActiveDirectoryMembershipProvider,但通常使用 GC:// 名字对象执行全局目录搜索。例如
using (DirectoryEntry searchRoot = new DirectoryEntry("GC://DC=yourdomain,DC=com"))
using (DirectorySearcher ds = new DirectorySearcher(searchRoot))
ds.Filter = "(sAMAccountName=userID1)";
ds.SearchScope = SearchScope.Subtree;
using (SearchResultCollection src = ds.FindAll())
foreach (SearchResult sr in src)
uxFred.Content = sr.Path;
在 ASP.NET 中工作时,我的建议始终是让您的搜索过滤器等使用 LDP 或只是一个普通的控制台/winform/wpf 应用程序。
【讨论】:
无法让会员提供者反对 GC,但这对我的目的有效。以上是关于将 ASP.NET ActiveDirectoryMembershipProvider 与林一起使用的主要内容,如果未能解决你的问题,请参考以下文章
带有 Active Directory 的 ASP.NET:用户凭据
没有密码的 ASP.Net Core 中的 Active Directory 授权
使用 Active Directory 中的安全组的 Asp.Net 基于角色的身份验证
ASP.NET 表单身份验证和 Active Directory 模拟
从 ASP.NET 应用程序使用 Active Directory 时出现 DirectoryServicesCOMException (0x80072020)