来自部分的完整 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 域名的主要内容,如果未能解决你的问题,请参考以下文章