System.DirectoryServices.Protocols
네임 스페이스를 사용하여 Active Directory 그룹의 특성을 추가/수정합니다. 코드 :PermissiveModifyControl이 C# LDAP에서 DirectoryOperationException을 throw합니다.
public void UpdateProperties(Dictionary<string, string> Properties) {
List<DirectoryAttributeModification> directoryAttributeModifications;
// ... Code to convert Properties dictionary to directoryAttributeModifications
// There is one 'Add' modification, to set the 'description' of the group
ModifyRequest modifyRequest = new ModifyRequest(groupDistinguishedName, directoryAttributeModifications.ToArray());
modifyRequest.Controls.Add(new PermissiveModifyControl());
ModifyResponse response = connection.SendRequest(modifyRequest) as ModifyResponse;
PermissiveModifyControl
는 설명이 이미 존재하는 경우 실패의 코드를 유지하기위한 것입니다. 내가 찾은 PermissiveModifyControl에 대한 유일한 정보는 여기에 있습니다 : http://msdn.microsoft.com/en-us/library/bb332056.aspx
어떤 상태 : 그것을 삭제하려고하면
되는 LDAP는 이미 존재하는 속성을 추가하려고하면 요청이 정상적으로 실패 수정하거나 존재하지 않는 속성.
PermissiveModifyControl
을 사용하면DirectoryOperationException
오류가 발생하지 않고 수정 작업이 완료됩니다. 위의 코드는SendRequest()
에 도달 할 때
그러나, 그것은 DirectoryOperationException
예외 : "속성이 존재하거나 값이 지정되었습니다."
내가 피하려고하는 것은 전달되는 컬렉션의 모든 속성을 쿼리해야한다는 것입니다. 존재하는 경우 Replace
DirectoryAttributeModification
을 작성하십시오. 그렇지 않은 경우 Add
을 대신 만드십시오. 내가 수확 할 수있는 것에서부터, PermissiveModifyControl
은 그 일을하기로되어 있습니다.
PermissiveModifyControl
이 여전히 DirectoryOperationException
을 던지는 이유와 제대로 사용하는 방법에 대해 알아 보았습니까?
미리 감사드립니다. James
+1 훌륭한 질문입니다. – geoffc