我正在嘗試創建一個接受Active Directory安全組列表並返回用戶是否爲成員(直接或間接)的布爾響應的方法。我使用的Adaxes(基本上擴展ADSI與他們自己的一些功能)。他們有一個對象(IAdmGroup),它爲一個組的所有成員(直接和間接)返回一個byte []數組。如果可以,我想避免使用這種方法,因爲某些組下有非常大的組(10,000多個用戶),如果我可以提供幫助,我不想影響性能。ADSI間接組成員
下面是我的問題的示例: 組1具有組2作爲成員。用戶1是組2的成員。如果我通過我的方法用戶1和組1,我應該得到「真實」。第1組也有第3組。第3組有10,000名成員,我不願意將該組中的所有10,000多名成員集中到一個集合中,並搜索該集合以查看用戶1是否在其中。
我正在使用C#,.Net4.0和WCF。
這裏是我到目前爲止所(我知道這是不是很多)
public Dictionary<string, bool> CheckGroupMembership(List<string> groups, string guid)
{
var resp = new Dictionary<string, bool>();
foreach (string group in groups)
{
var user = getIADsUser("Adaxes://<GUID=" + guid + ">"); //gets the IADsUser object
var adGroup = GetGroup(group); //Gets IADsGroup
}
}