Пример #1
0
        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++;
            }
        }
Пример #2
0
        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);
        }
Пример #6
0
        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);
        }