将 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)

会员凭证验证失败