【问题标题】:Authenticate user in Global Catalog在全局目录中验证用户
【发布时间】:2009-12-01 23:39:15
【问题描述】:

在给定用户 ID、域和密码的情况下,我需要验证用户的 Windows 凭据。我们的 Active Directory 包含多个域,我们可以使用以下代码列出其中的一些域:

var domains = System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest().Domains;

但是,我们也有属于林外域的用户。但是,我可以从全局目录 (GC) 访问它们。下面的代码允许我获取用户 ID 的目录条目。

System.DirectoryServices.DirectoryEntry globalCatalogDE = new System.DirectoryServices.DirectoryEntry("GC://DC=nsroot,DC=net");
var ds = new System.DirectoryServices.DirectorySearcher(globalCatalogDE);
ds.Filter = "(&(objectClass=user)(sAMAccountName=" + userId + "))";
System.DirectoryServices.DirectoryEntry userDE = ds.FindAll()[0].GetDirectoryEntry();

如何验证属于我无法直接访问但在 GC 中可供我使用的域的用户?

【问题讨论】:

    标签: c# active-directory windows-authentication


    【解决方案1】:

    您无法通过查看全局目录对用户进行身份验证,它仅用于搜索(每个域的架构中标有 isMemberOfPartialAttributeSet 的任何属性都会复制到 GC)。

    密码不会复制到它;否则,您将拥有每个域控制器上整个 forrest 中所有用户的密码,从安全和复制的角度来看,这将是非常糟糕的。您需要与存储用户凭据的域建立连接(即您需要访问 LDAP 端口 389 或 636)。

    【讨论】:

    • 听起来很合理,我可以将其标记为答案,即使它没有解决我的问题。
    猜你喜欢
    • 2017-07-22
    • 2023-02-01
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多