Exemplo n.º 1
0
        public SearchResult(LdapStreamReader reader)
            : base("")
        {
            int contentLength = reader.ReadElementLength();

            ObjectName = reader.ReadStringElement();

            Attributes = ReadAttributes(reader.GetElementReader(0x30));
        }
Exemplo n.º 2
0
 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);
         }
     }
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 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;
             }
         }
     }
 }
Exemplo n.º 6
0
 protected void ReadResponseDetails(LdapStreamReader reader)
 {
     ResultCode    = reader.ReadEnumElement();
     MatchedObject = reader.ReadStringElement();
     ErrorMessage  = reader.ReadStringElement();
 }
Exemplo n.º 7
0
 protected virtual void ReadResponseBody(LdapStreamReader reader)
 {
     ReadResponseDetails(reader);
 }