/// <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; AddRequest_attrs_element[] addrequestAttrsArray = new AddRequest_attrs_element[length]; for (int i = 0; i < length; i++) { addrequestAttrsArray[i] = new AddRequest_attrs_element( new AttributeType(attributes[i].Key), CreateAttributeValueSet(attributes[i].Value)); } Asn1SequenceOf <AddRequest_attrs_element> attributeList = new Asn1SequenceOf <AddRequest_attrs_element>(addrequestAttrsArray); AddRequest addRequest = new AddRequest( new LDAPDN(objectDn ?? string.Empty), attributeList); LDAPMessage_protocolOp operation = new LDAPMessage_protocolOp(); operation.SetData(LDAPMessage_protocolOp.addRequest, addRequest); LDAPMessage message = new LDAPMessage(new MessageID(context.MessageId), operation); AdtsAddRequestPacket packet = new AdtsAddRequestPacket(); packet.ldapMessagev2 = message; packet.messageId = context.MessageId; return(packet); }
/// <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 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; }
internal AdtsLdapPacket CreatePacketFromType(Type messageType) { AdtsLdapPacket packet = null; if (messageType == typeof(AbandonRequest)) { packet = new AdtsAbandonRequestPacket(); } else if (messageType == typeof(AddRequest)) { packet = new AdtsAddRequestPacket(); } else if (messageType == typeof(AddResponse)) { packet = new AdtsAddResponsePacket(); } else if (messageType == typeof(BindRequest)) { packet = new AdtsBindRequestPacket(); } else if (messageType == typeof(BindResponse)) { packet = new AdtsBindResponsePacket(); } else if (messageType == typeof(CompareRequest)) { packet = new AdtsCompareRequestPacket(); } else if (messageType == typeof(CompareResponse)) { packet = new AdtsCompareResponsePacket(); } else if (messageType == typeof(DelRequest)) { packet = new AdtsDelRequestPacket(); } else if (messageType == typeof(DelResponse)) { packet = new AdtsDelResponsePacket(); } else if (messageType == typeof(ExtendedRequest)) { packet = new AdtsExtendedRequestPacket(); } else if (messageType == typeof(ExtendedResponse)) { packet = new AdtsExtendedResponsePacket(); } else if (messageType == typeof(ModifyDNRequest)) { packet = new AdtsModifyDnRequestPacket(); } else if (messageType == typeof(ModifyDNResponse)) { packet = new AdtsModifyDnResponsePacket(); } else if (messageType == typeof(ModifyRequest)) { packet = new AdtsModifyRequestPacket(); } else if (messageType == typeof(ModifyResponse)) { packet = new AdtsModifyResponsePacket(); } else if (messageType == typeof(SearchRequest)) { packet = new AdtsSearchRequestPacket(); } else if (messageType == typeof(SearchResultEntry)) { packet = new AdtsSearchResultEntryPacket(); } else if (messageType == typeof(SearchResultReference)) { packet = new AdtsSearchResultReferencePacket(); } else if (messageType == typeof(SearchResultDone)) { packet = new AdtsSearchResultDonePacket(); } else if (messageType == typeof(SicilyBindResponse)) { packet = new AdtsSicilyBindResponsePacket(); } else if (messageType == typeof(UnbindRequest)) { packet = new AdtsUnbindRequestPacket(); } else { throw new StackException("Unknown message type: " + messageType.ToString()); } return packet; }
internal AdtsLdapPacket CreatePacketFromType(Type messageType) { AdtsLdapPacket packet = null; if (messageType == typeof(AbandonRequest)) { packet = new AdtsAbandonRequestPacket(); } else if (messageType == typeof(AddRequest)) { packet = new AdtsAddRequestPacket(); } else if (messageType == typeof(AddResponse)) { packet = new AdtsAddResponsePacket(); } else if (messageType == typeof(BindRequest)) { packet = new AdtsBindRequestPacket(); } else if (messageType == typeof(BindResponse)) { packet = new AdtsBindResponsePacket(); } else if (messageType == typeof(CompareRequest)) { packet = new AdtsCompareRequestPacket(); } else if (messageType == typeof(CompareResponse)) { packet = new AdtsCompareResponsePacket(); } else if (messageType == typeof(DelRequest)) { packet = new AdtsDelRequestPacket(); } else if (messageType == typeof(DelResponse)) { packet = new AdtsDelResponsePacket(); } else if (messageType == typeof(ExtendedRequest)) { packet = new AdtsExtendedRequestPacket(); } else if (messageType == typeof(ExtendedResponse)) { packet = new AdtsExtendedResponsePacket(); } else if (messageType == typeof(ModifyDNRequest)) { packet = new AdtsModifyDnRequestPacket(); } else if (messageType == typeof(ModifyDNResponse)) { packet = new AdtsModifyDnResponsePacket(); } else if (messageType == typeof(ModifyRequest)) { packet = new AdtsModifyRequestPacket(); } else if (messageType == typeof(ModifyResponse)) { packet = new AdtsModifyResponsePacket(); } else if (messageType == typeof(SearchRequest)) { packet = new AdtsSearchRequestPacket(); } else if (messageType == typeof(SearchResultEntry)) { packet = new AdtsSearchResultEntryPacket(); } else if (messageType == typeof(SearchResultReference)) { packet = new AdtsSearchResultReferencePacket(); } else if (messageType == typeof(SearchResultDone)) { packet = new AdtsSearchResultDonePacket(); } else if (messageType == typeof(SicilyBindResponse)) { packet = new AdtsSicilyBindResponsePacket(); } else if (messageType == typeof(UnbindRequest)) { packet = new AdtsUnbindRequestPacket(); } else { throw new StackException("Unknown message type: " + messageType.ToString()); } return(packet); }
/// <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; AddRequest_attrs_element[] addrequestAttrsArray = new AddRequest_attrs_element[length]; for (int i = 0; i < length; i++) { addrequestAttrsArray[i] = new AddRequest_attrs_element( new AttributeType(attributes[i].Key), CreateAttributeValueSet(attributes[i].Value)); } Asn1SequenceOf<AddRequest_attrs_element> attributeList = new Asn1SequenceOf<AddRequest_attrs_element>(addrequestAttrsArray); AddRequest addRequest = new AddRequest( new LDAPDN(objectDn ?? string.Empty), attributeList); LDAPMessage_protocolOp operation = new LDAPMessage_protocolOp(); operation.SetData(LDAPMessage_protocolOp.addRequest, addRequest); LDAPMessage message = new LDAPMessage(new MessageID(context.MessageId), operation); AdtsAddRequestPacket packet = new AdtsAddRequestPacket(); packet.ldapMessagev2 = message; packet.messageId = context.MessageId; return packet; }