【问题标题】:handling multiple Domains for Active Directory Authentication为 Active Directory 身份验证处理多个域
【发布时间】:2015-06-06 22:08:36
【问题描述】:

在我的应用程序中,我使用以下方法将 AD 用户名传递给它(例如:Domain1\User1)并尝试在 Active Directory 中查找用户所属的组。

     public ActionResult Login(string userName)
   {
        PrincipalContext up = new   PrincipalContext(ContextType.Domain);

        UserPrincipal users = UserPrincipal.FindByIdentity(up,IdentityType.SamAccountName, userName);

        PrincipalSearchResult<Principal> groups = users.GetGroups();
        IEnumerable<string> userGroupList = groups.Select(p =>p.SamAccountName);
        return userGroupList ;
    }

该代码运行良好,但是我猜该代码将无法在有多个域的环境中运行。 例如: 1) 用户尝试使用 (Domain1\User1) 登录,它会通过, 2) 用户尝试使用 (Domain2\User2) 登录,应用程序将尝试在 Domain1 中查找 User2,因为没有这样的Domain1 中的用户将失败。

这是真的吗?如果是,我该如何解决这个问题,使其适用于多个域?

【问题讨论】:

    标签: c# .net active-directory active-directory-group


    【解决方案1】:

    在尝试实例化新的 PrincipalContext 对象时,我需要将域名作为第二个参数传递。 通过这样做,我能够检索具有多个域的用户组。 所以代码会是这样的:

          PrincipalContext up = new   PrincipalContext(ContextType.Domain,"DomainName");
    

    【讨论】:

      猜你喜欢
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      相关资源
      最近更新 更多