来自部分的完整 AD 域名

Posted

技术标签:

【中文标题】来自部分的完整 AD 域名【英文标题】:Full AD domain name from partial 【发布时间】:2014-02-21 03:51:40 【问题描述】:

我正在编写一个可以使用 Windows 身份而不是用户名和密码进行登录身份验证的应用程序,但我想添加一个验证功能来确认用户名是否存在于本地或域的 Active Directory 服务中,这与 Outlook 的不同“检查名称”按钮。

因此,如果管理员开始创建新用户并输入 mfd\john.smith 并单击“验证”,它看起来会进行验证并允许创建用户。

虽然我可以使用 DirectorySearcher 类很好地做到这一点,但问题在于域名。在这里,我们的域名在技术上是“mfd.local”,但 Environment.UserDomainName 和用户名通常只输入为 MFD\username。当我尝试使用 DirectorySearcher 方法时,它会抛出一个异常说“推荐是 由服务器返回”,没有关于推荐的信息。

当我手动将其更改为 mfd.local\username 时,搜索器工作。当我将DirectorySearcher.ReferralChasing 设置为 All 时,它仍然不起作用。

在进行 LDAP 搜索时,有没有办法接受域名的短版本?

【问题讨论】:

【参考方案1】:

就这样我找到了解决方案!它接受较短的域名MFD,其中完整的域名是mfd.local

private static bool DomainUserExists(string domain, string username)

    try 
        var context = new PrincipalContext(ContextType.Domain, domain);
        var userPrincipal = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, username);
        return userPrincipal != null;
    
    catch (Exception exc)
    
        // handle if necessary
        return false;
    

【讨论】:

以上是关于来自部分的完整 AD 域名的主要内容,如果未能解决你的问题,请参考以下文章

AD域名和公司网站名一样,DNS指向服务器后网站打不开,怎么办?

网站部署一级域名二级域名子域名

如何获取本机电脑的AD域名称

域名管理常识

powershell 加入AD域名

location.pathname:返回URL的域名(域名IP)后的部分。