public void Ctor_Default() { var control = new PermissiveModifyControl(); Assert.True(control.IsCritical); Assert.True(control.ServerSide); Assert.Equal("1.2.840.113556.1.4.1413", control.Type); Assert.Empty(control.GetValue()); }
public void Update() { ADPropertyValueCollection value; this.Init(); DebugLogger.WriteLine("ADActiveObject", string.Concat("Update called for ", this._adObject.DistinguishedName)); DirectoryAttributeModificationCollection directoryAttributeModificationCollection = new DirectoryAttributeModificationCollection(); if (!this._adObject.TrackChanges) { bool flag = false; foreach (KeyValuePair <string, ADPropertyValueCollection> keyValuePair in this._adObject) { string key = keyValuePair.Key; if (flag || string.Compare(key, "distinguishedName", StringComparison.OrdinalIgnoreCase) != 0) { value = keyValuePair.Value; this.UpdateValueCollectionChanges(key, value, directoryAttributeModificationCollection); } else { flag = true; } } } else { foreach (string addedProperty in this._adObject.AddedProperties) { value = this._adObject[addedProperty]; this.UpdateValueCollectionChanges(addedProperty, value, directoryAttributeModificationCollection); } foreach (string removedProperty in this._adObject.RemovedProperties) { DirectoryAttributeModification directoryAttributeModification = new DirectoryAttributeModification(); directoryAttributeModification.Name = removedProperty; directoryAttributeModification.Operation = DirectoryAttributeOperation.Delete; directoryAttributeModificationCollection.Add(directoryAttributeModification); } foreach (string modifiedProperty in this._adObject.ModifiedProperties) { value = this._adObject[modifiedProperty]; this.UpdateValueCollectionChanges(modifiedProperty, value, directoryAttributeModificationCollection); } } if (directoryAttributeModificationCollection.Count != 0) { DirectoryAttributeModification[] directoryAttributeModificationArray = new DirectoryAttributeModification[directoryAttributeModificationCollection.Count]; directoryAttributeModificationCollection.CopyTo(directoryAttributeModificationArray, 0); ADModifyRequest aDModifyRequest = new ADModifyRequest(this._adObject.DistinguishedName, directoryAttributeModificationArray); PermissiveModifyControl permissiveModifyControl = new PermissiveModifyControl(); aDModifyRequest.Controls.Add(permissiveModifyControl); if (this._sdFlags != SecurityMasks.None) { aDModifyRequest.Controls.Add(new SecurityDescriptorFlagControl(this._sdFlags)); } this._syncOps.Modify(this._sessionHandle, aDModifyRequest); DebugLogger.WriteLine("ADActiveObject", string.Concat("Update succeeded for ", this._adObject.DistinguishedName)); return; } else { return; } }