我有个奇怪的问题。我想检查用户和密码是有效的2个域与信任。
List<string> definedDomains = new List<string>();
definedDomains.Add("DomainA");
definedDomains.Add("DomainB");
bool isValid = false;
foreach (string domain in definedDomains)
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, domain))
{
isValid = pc.ValidateCredentials("userB", "password");下面是比较奇怪的部分:在DomainA上,使用有效口令ValidateCredentials的UserB返回true。以及以后的
PrincipalContext yourDomain = new PrincipalContext(ContextType.Domain, domain);
UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(yourDomain, "UserB");FindByIdentity方法返回null。
如何在时间上只在一个域中验证?
发布于 2017-10-18 20:51:04
您可以验证跨域凭据,因为指定的域会将查询转发到用户的域,但您无法从不包含该用户的域加载承担者信息。
PrincipalContext定义FindByIdentity将在其中进行搜索的边界。这可以是整个域,也可以是域中的特定OU,但您无法在上下文之外找到结果。
https://stackoverflow.com/questions/46809918
复制相似问题