public SearchResult(LdapStreamReader reader) : base("") { int contentLength = reader.ReadElementLength(); ObjectName = reader.ReadStringElement(); Attributes = ReadAttributes(reader.GetElementReader(0x30)); }
protected virtual void ReadResponse(LdapStreamReader reader, ProtocolOperation protocol) { if (reader.NextElementIs(0x30)) { int messageLength = reader.ReadElementLength(); MessageId = reader.ReadIntElement(); if (reader.NextElementIs((int)protocol)) { int contentLength = reader.ReadElementLength(); ReadResponseBody(reader); } } }
ObjectAttribute ReadAttribute(LdapStreamReader reader) { List <string> attributes = new List <string> (); ObjectAttribute attribute = new ObjectAttribute(); attribute.Type = reader.ReadStringElement(); LdapStreamReader valueReader = reader.GetElementReader(0x31); while (valueReader.Peek() != -1) { attributes.Add(valueReader.ReadStringElement()); } attribute.Values = attributes.ToArray(); return(attribute); }
Dictionary <string, ObjectAttribute> ReadAttributes(LdapStreamReader reader) { Dictionary <string, ObjectAttribute> attributes = new Dictionary <string, ObjectAttribute> (); while (true) { int nextByte = reader.Peek(); if (nextByte == 0x30) { ObjectAttribute attribute = ReadAttribute(reader.GetElementReader(0x30)); attributes.Add(attribute.Type, attribute); } else if (nextByte == -1) { break; } } return(attributes); }
protected override void ReadResponse(LdapStreamReader reader, ProtocolOperation protocol) { Results = new List <SearchResult> (); while (true) { if (reader.NextElementIs(0x30)) { int messageLength = reader.ReadElementLength(); MessageId = reader.ReadIntElement(); int operation = reader.ReadByte(); if (operation == (int)ProtocolOperation.SearchResultEntry) { Results.Add(new SearchResult(reader)); } else if (operation == (int)ProtocolOperation.SearchResultDone) { int contentLength = reader.ReadElementLength(); ReadResponseBody(reader); break; } } } }
protected void ReadResponseDetails(LdapStreamReader reader) { ResultCode = reader.ReadEnumElement(); MatchedObject = reader.ReadStringElement(); ErrorMessage = reader.ReadStringElement(); }
protected virtual void ReadResponseBody(LdapStreamReader reader) { ReadResponseDetails(reader); }