2016-04-07 29 views
0

我有一個功能女巫試圖從一組LDAP屬性包含許多值

的問題是,如果你嘗試刪除成員,不知道存在該組中刪除成員,你可能會導致異常。 因此,我嘗試枚舉其會員事先。

現在的問題是,成員屬性在3000個條目後停止,我不知道獲取更多的方法或該組的下一個3000個成員。

這裏是我的代碼

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 [「成員」]正好包含3000項,但在現實中,它是圍繞7500

作爲一個速記修復我使用remove聲明在沒有.Contains()檢查的try/catch塊中,但看起來不正確/漂亮/正確。

任何人都可以引導我以正確的方式嗎? PS:我不能改變我們目錄的結構。 這是一組RADIUS用戶,不應該分成更多組!

回答

1

讓所有的小組成員,以確定用戶是否是列表我會使用的memberOf/isMemberOf屬性的一部分,而不是(假設你的目錄支持此功能)。此屬性會告訴您用戶是否屬於某個組,而無需檢索所有組成員。

This other answer可能會有所幫助。

+0

今天我會試一試,讓我們知道我們的MS AD是否支持這一點。 – Daywalker

+0

我試圖做一個target_group.Properties [「memberOf」]。Remove(memberOf_DN);但它不工作:((服務器不願意執行...)我認爲我會堅持嘗試catch塊現在MaxValRange聲明是我不努力得到正常工作。 – Daywalker