使用
System.DirectoryServices.Protocols
在Active Directory组上添加/修改属性的命名空间。代码:
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
如果描述已经存在,则用于防止代码失败。我找到的有关PermissionModifyControl的唯一信息如下:
http://msdn.microsoft.com/en-us/library/bb332056.aspx
其中规定:
允许修改控制
modify操作在不引发
DirectoryOperationException
错误。
但是,当上述代码到达
SendRequest()
,它抛出一个
目录操作异常
:“属性存在或已赋值。”
我试图避免的是必须查询传递的集合中的每个属性;如果存在,创建一个
Replace
DirectoryAttributeModification
Add
允许修改控制
就应该这么做。
有人能解释一下原因吗
允许修改控制
仍然抛出一个
目录操作异常
,如何正确使用?
提前谢谢!
詹姆斯