代码之家  ›  专栏  ›  技术社区  ›  naspinski

如何在Asp.Net中为用户获取广告用户组?

  •  3
  • naspinski  · 技术社区  · 16 年前

    我需要能够获取用户所在组的列表,但我需要具有以下一个/部分/全部属性:

    • 名称
    • samaccountname

    我现在使用的名称返回某种类型的名称,但不返回上面的任何名称(名称看起来很接近,但不完全匹配。这就是我使用的名称:

    ArrayList groups = new ArrayList();
    foreach (System.Security.Principal.IdentityReference group in System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups)
        groups.Add(group.Translate(typeof(System.Security.Principal.NTAccount)));
    

    正如我所说的,上面的方法是有效的,但不能为我的程序(上面指定的)提供所需的专有名称。我需要这个,以便能够与调用我域中所有组时得到的列表相匹配:

    DirectoryEntry dirEnt = new DirectoryEntry("LDAP://my_domain_controller");
    DirectorySearcher srch = new DirectorySearcher(dirEnt);
    srch.Filter = "(objectClass=Group)";
    var results = srch.FindAll();
    
    1 回复  |  直到 15 年前
        1
  •  3
  •   Biri    16 年前

    因此,在第一次运行中,您应该获取用户所在的组名,并将其填入某种列表中。

    第二步是遍历所有组名并逐个查询,以获得组属性(如DiscrimencedName等),并将其收集到某种结构中。