Yani AD grup üyeliğini yinelemeli olarak sıralayan bir şey almaya çalışıyorum. Şu anda ...C# - GroupPrincipal.GetMembers (true) - hangi grup?
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "mine.domain.com");
GroupPrincipal grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, "myADGroup");
if (grp != null)
{
foreach (Principal p in grp.GetMembers(true))
{
Console.WriteLine(p.Name);
}
}
Bu, elbette harika çalışıyor. Grubun üyesi olan tüm kullanıcıları ve içine yerleştirilmiş grupların tüm kullanıcılarını listeler, ancak çok sayıda yuvalama düzeyi olabilir. Hangisi harika.
Gerçekten ihtiyacım olan şey, bu küçük yuvadaki kullanıcının grubunun ne olduğunu bilmek. Ben kullanıcı ve o gelen CTP-MainProject üyeliğini miras CTP-Sanatçılar olduğu gerçeğini dönen hakkında gitmeli nasıl -
GRP-MainProject
-- GRP-Producers
-- GRP-Artists
-- UserA
UserA dönecektir CTP-MainProject karşı benim şimdiki sorguyu çalıştırma?
UserA konularda durumda, yaklaşık 40 gruplar ya da öylesine bir üyesidir. Düzenleme - kullanıcı, birden çok iç içe gruptan gruba üye olabilir.
Herhangi bir düşünce mutluluk duyacağız.
Zaten bu satırı foreach içinde biliyorum (grp.GetMembers (gerçek) içinde p) sadece grp sadece senin p.Name – Raymund
ile çıktı Eğer grp çıktı zaman, sadece "GRP-MainProject" çıktılar UserA için grup olarak, GRP-Sanatçılar kullanıcı grubu olarak dönmeliyim. GetMembers için boole değeri true olduğundan, yinelenen çıktısı, gerçek yuvalanmış grup üyeliğinden bağımsız olarak, GRP-MainProject içinde bulunan tüm kullanıcıları sayar. Bir şekilde 'userGroup' grp'' üyesi bilgisi çıktısını almadan olup olmadığını test etmek için bir işareti eklenir eğer – dotalchemy