【问题标题】:Full AD domain name from partial来自部分的完整 AD 域名
【发布时间】:2023-03-18 13:00:01
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: .net active-directory


    【解决方案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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-10
      • 2011-10-18
      • 2020-03-03
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      相关资源
      最近更新 更多