public async Task WhenExecuteSearchRequest(string dn, int messageId) { var payload = LdapPacketBuilder.NewSearchRequest(messageId, dn, SearchRequestScopes.WholeSubtree, SearchRequestDeferAliases.NeverDerefAliases, 10, 10, false, new List <string> { }, (opt) => { opt.SetPresentFilter("objectClass"); }).Serialize().ToArray(); await _stream.WriteAsync(payload); bool isSearchResultDone = false; int i = 0; while (!isSearchResultDone) { var data = new byte[5000]; await _stream.ReadAsync(data, 0, data.Length); var ldapPacket = LdapPacket.Extract(data.ToList()); var ldapPacketJSON = JObject.FromObject(ldapPacket); if (ldapPacket.ProtocolOperation.Operation is SearchResultDone) { isSearchResultDone = true; _scenarioContext.Set(ldapPacketJSON, "searchResultDone"); } else { _scenarioContext.Set(ldapPacketJSON, $"searchResultEntry-{i}"); } i++; } }
public async Task WhenExecuteBindRequest(string userName, string password, int messageId) { var payload = LdapPacketBuilder.NewBindRequest(messageId, 3, userName, (opt) => { opt.SetSimpleAuthentication(password); }).Serialize().ToArray(); await Send(payload); }
public void When_Serialize_SearchRequest() { var payload = LdapPacketBuilder.NewSearchRequest(1, "cn=system", SearchRequestScopes.BaseObject, SearchRequestDeferAliases.NeverDerefAliases, 10, 10, false, new List <string> { }, (opt) => { opt.SetEqualFilter("name", "value"); }).Serialize().ToList(); var ldapPacket = LdapPacket.Extract(payload); var searchRequest = ldapPacket.ProtocolOperation.Operation as SearchRequest; Assert.NotNull(searchRequest); }
public void When_Serialize_BindRequest() { var payload = LdapPacketBuilder.NewBindRequest(1, 3, "administrator", (opt) => { opt.SetSimpleAuthentication("password"); }).Serialize().ToList(); var ldapPacket = LdapPacket.Extract(payload); var bindRequest = ldapPacket.ProtocolOperation.Operation as BindRequest; var simpleAuthChoice = bindRequest.Authentication as SimpleAuthChoice; Assert.NotNull(ldapPacket); Assert.Equal(1, ldapPacket.MessageId.Value); Assert.Equal(3, bindRequest.Version.Value); Assert.Equal("administrator", bindRequest.Name.Value); Assert.Equal("password", simpleAuthChoice.Value.Value); }
public void When_Serialize_AddRequest() { var payload = LdapPacketBuilder.NewAddRequest(1, "administrator", (opt) => { opt.AddAttribute("objectClass", new List <string> { "inetOrgPerson" }); }).Serialize().ToList(); var ldapPacket = LdapPacket.Extract(payload); var addRequest = ldapPacket.ProtocolOperation.Operation as AddRequest; Assert.NotNull(ldapPacket); Assert.Equal(1, ldapPacket.MessageId.Value); Assert.True(addRequest.Attributes.Values.Count() == 1); Assert.Equal("objectClass", addRequest.Attributes.Values.First().Type.Value); }
public async Task WhenExecuteAddRequest(string dn, int messageId, Table table) { var payload = LdapPacketBuilder.NewAddRequest(messageId, dn, (opt) => { foreach (var record in table.Rows) { var key = record["Key"]; var value = record["Value"]; opt.AddAttribute(key, new List <string> { value }); } }).Serialize().ToArray(); await Send(payload); }