private Asn1SetOf<AttributeValue> CreateAttributeValueSet(byte[][] values) { int length = (values != null) ? values.Length : 0; AttributeValue[] valueArray = new AttributeValue[length]; for (int i = 0; i < length; i++) { valueArray[i] = new AttributeValue(System.Text.Encoding.UTF8.GetString(values[i])); } Asn1SetOf<AttributeValue> valueSet = new Asn1SetOf<AttributeValue>(valueArray); return valueSet; }
/// <summary> /// Creates an AddRequest packet. /// </summary> /// <param name="context">The user context which contains message ID.</param> /// <param name="objectDn">The DN of the object to be added.</param> /// <param name="attributes">Attributes to be set.</param> /// <returns>The packet that contains the request.</returns> internal override AdtsAddRequestPacket CreateAddRequest( AdtsLdapContext context, string objectDn, params KeyValuePair<string, string[]>[] attributes) { int length = (attributes != null) ? attributes.Length : 0; AttributeList_element[] attributeArray = new AttributeList_element[length]; for (int i = 0; i < length; i++) { AttributeValue[] attributeValues = new AttributeValue[attributes[i].Value.Length]; for (int j = 0; j < attributes[i].Value.Length; i++) { attributeValues[j] = new AttributeValue(attributes[i].Value[j]); } attributeArray[i] = new AttributeList_element(new AttributeDescription(attributes[i].Key), new Asn1SetOf<AttributeValue>(attributeValues)); } AddRequest addRequest = new AddRequest( new LDAPDN(objectDn ?? string.Empty), new AttributeList(attributeArray)); LDAPMessage_protocolOp operation = new LDAPMessage_protocolOp(); operation.SetData(LDAPMessage_protocolOp.extendedReq, addRequest); LDAPMessage message = new LDAPMessage(new MessageID(context.MessageId), operation, null); AdtsAddRequestPacket packet = new AdtsAddRequestPacket(); packet.ldapMessagev3 = message; packet.messageId = context.MessageId; return packet; }
/// <summary> /// Creates a _SetOfAttributeValue instance that contains a set of values. /// </summary> /// <param name="values">The values to be added.</param> /// <returns>The _SetOfAttributeValue instance. If values is null, an empty set will be returned.</returns> private Asn1SetOf<AttributeValue> CreateAttributeValueSet(string[] values) { int length = (values != null) ? values.Length : 0; AttributeValue[] valueArray = new AttributeValue[length]; for (int i = 0; i < length; i++) { valueArray[i] = new AttributeValue(values[i]); } Asn1SetOf<AttributeValue> valueSet = new Asn1SetOf<AttributeValue>(valueArray); return valueSet; }