gpt4 book ai didi

c# - 在全局目录中验证用户

转载 作者:行者123 更新时间:2023-11-30 22:48:11 24 4
gpt4 key购买 nike

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

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

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

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 中可用的域的用户?

最佳答案

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

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

关于c# - 在全局目录中验证用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1829727/

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