簡體   English   中英

如何在Asp.Net中獲取用戶的AD用戶組?

[英]How to get AD User Groups for user in Asp.Net?

我需要能夠獲得用戶所在組的列表,但我需要看到一個/部分/全部以下屬性:

  • 專有名稱
  • 名稱
  • CN
  • SAM帳戶

我現在擁有的是某種名稱,但不是上面的任何名稱(名稱似乎很接近,但並不是所有名稱都正確匹配。這就是我正在使用的名稱:

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();

您不能一步完成此操作,因為組也是具有屬性的單獨AD條目。

因此,在第一次運行中,您應該獲得用戶所在的組名稱並將其填入某種列表中。

第二步是遍歷所有組名並逐個查詢它們以獲取組屬性(如distinguishedname等)並將其收集到某種結構中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM