2016-04-07 18 views
0

birçok değerlere içeren, bir özel durumu neden olabilir . Bu yüzden üyeliğini önceden saymaya çalışıyorum.LDAP özelliği bir işlev cadı Grupta varlığını bilmeden, bir üyeyi kaldırmaya çalışırsanız</p> <p>sorundur gruptan bir üyeyi kaldırmak için çalışır var

Sorun şu ki, üye girişi 3000 Giriş'ten sonra durur ve daha fazlasını elde etmenin ya da o grubun sonraki 3000 üyesini bilmem. İşte

DirectoryEntry target_group = new DirectoryEntry(LDAP_group_DN); 
if (target_group.Properties["member"].Contains(LDAP_member_to_remove_DN)) { 
    target_group.Properties["member"].Remove(LDAP_member_to_remove_DN); 
} 
target_group.CommitChanges(); 

target_group.Properties [ "üyesi"] tam 3000 girdileri içerir benim kodudur, ama gerçekte ben kaldırma deyimi kullanıyorum bir kısaltmadır düzeltme olarak etrafında 7500

olduğunu .Contains() denetimi olmadan bir try/catch bloğunda, ancak bu doğru/güzel/sağ görünmüyor.

Herkes beni doğru yola yönlendirebilir mi?

Not: Dizinin yapısını değiştiremiyorum. Bu bir grup RADIUS kullanıcısıdır, daha fazla gruba ayrılmamalıdır!

cevap

1

yerine kullanıcı Ben memberOf/isMemberOf özellik kullanmak olacağını listenin parçası olup olmadığını belirlemek için tüm grup üyeleri almanın çok basit var. Bu özellik, bir kullanıcının tüm grup üyelerini almak zorunda kalmadan bir gruba ait olup olmadığını size bildirecektir.

This other answer yardımcı olabilir.

+0

Bunu bir deneyin ve MS AD'mizin bunu destekleyip desteklemediğini öğreneceğim. – Daywalker

+0

Bir target_group.Properties ["memberOf"] yapmayı denedim. (MemberOf_DN) öğesini kaldır; Ama işe yaramadı :((Sunucu bunu yapmak istemiyor ...) Sanırım şu anki yakalama bloğuna sadık kalacağım MaxValRange ifadesi Henüz düzgün çalışmayı başaramadığım bir şey. – Daywalker