コード例 #1
0
ファイル: APIController.cs プロジェクト: Illedan/Gjallarhorn
        public async Task <IActionResult> ComparePackages([FromBody] string body)
        {
            var requestData = body;

            try
            {
                CompareRequest compareRequest = JsonConvert.DeserializeObject <CompareRequest>(body);
                foreach (var sourceComparer in compareRequest.SourceComparers)
                {
                    foreach (var package in sourceComparer.Packages)
                    {
                        package.SourceA        = sourceComparer.SourceA;
                        package.SourceB        = sourceComparer.SourceB;
                        package.SourceAVersion = await m_nugetService.GetLatestVersionAsync(package.Name, package.SourceA, package.ComparePrerelease);

                        package.SourceBVersion = await m_nugetService.GetLatestVersionAsync(package.Name, package.SourceB, package.ComparePrerelease);
                    }
                }

                var packages        = MergePackages(compareRequest.SourceComparers);
                var orderedpackages = packages.OrderBy(p => p.SourceAVersion != p.SourceBVersion);
                return(Ok(orderedpackages));
            }
            catch (Exception e)
            {
                return(NotFound(e));
            }
        }
コード例 #2
0
        public void TestCompareRequestTheory(object value, object assertion, ResultCode compareResult)
        {
            using (LdapConnection connection = GetConnection())
            {
                string ouName = "ProtocolsGroup10";
                string rdn    = "ou=" + ouName;

                DeleteEntry(connection, rdn);
                AddOrganizationalUnit(connection, rdn);

                string dn = rdn + "," + LdapConfiguration.Configuration.SearchDn;

                // set description to value
                var mod      = new ModifyRequest(dn, DirectoryAttributeOperation.Replace, "description", value);
                var response = connection.SendRequest(mod);
                Assert.Equal(ResultCode.Success, response.ResultCode);

                // compare description to assertion
                var cmp = new CompareRequest(dn, new DirectoryAttribute("description", assertion));
                response = connection.SendRequest(cmp);
                // assert compare result
                Assert.Equal(compareResult, response.ResultCode);

                // compare description to value
                cmp      = new CompareRequest(dn, new DirectoryAttribute("description", value));
                response = connection.SendRequest(cmp);
                // compare result always true
                Assert.Equal(ResultCode.CompareTrue, response.ResultCode);
            }
        }
コード例 #3
0
        private static Comparer CompareFiles(CompareRequest compareRequest, string resultGuid)
        {
            string firstPath  = compareRequest.guids[0].GetGuid();
            string secondPath = compareRequest.guids[1].GetGuid();

            // create new comparer
            Comparer comparer = new Comparer(firstPath, GetLoadOptions(compareRequest.guids[0].GetPassword()));

            comparer.Add(secondPath, GetLoadOptions(compareRequest.guids[1].GetPassword()));
            CompareOptions compareOptions = new CompareOptions {
                CalculateCoordinates = true
            };

            if (Path.GetExtension(resultGuid) == ".pdf")
            {
                compareOptions.DetalisationLevel = DetalisationLevel.High;
            }

            using (FileStream outputStream = File.Create(Path.Combine(resultGuid)))
            {
                comparer.Compare(outputStream, compareOptions);
            }

            return(comparer);
        }
 public HttpResponseMessage Compare(CompareRequest compareRequest)
 {
     try
     {
         // check formats
         if (comparisonService.CheckFiles(compareRequest))
         {
             // compare
             CompareResultResponse  result   = comparisonService.Compare(compareRequest);
             JsonSerializerSettings settings = new JsonSerializerSettings();
             settings.ContractResolver = new LowercaseContractResolver();
             string json          = JsonConvert.SerializeObject(result, Formatting.Indented, settings);
             var    compareResult = JsonConvert.DeserializeObject(json);
             return(Request.CreateResponse(HttpStatusCode.OK, compareResult));
         }
         else
         {
             return(Request.CreateResponse(HttpStatusCode.OK, new Resources().GenerateException(new Exception("Document types are different"))));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, new Resources().GenerateException(ex)));
     }
 }
コード例 #5
0
ファイル: RegexMatchController.cs プロジェクト: ndkhili/Regex
        public async Task <IActionResult> Compare([FromBody] CompareRequest request)
        {
            var input = new CompareInput(request.Text, request.Expression);

            await compareUseCase.Execute(input);

            return(comparePresenter.Result);
        }
コード例 #6
0
        public void DistinguishedName_Set_GetReturnsExpected()
        {
            var request = new CompareRequest {
                DistinguishedName = "Name"
            };

            Assert.Equal("Name", request.DistinguishedName);
        }
コード例 #7
0
        public void Ctor_Default()
        {
            var request = new CompareRequest();

            Assert.Empty(request.Assertion);
            Assert.Empty(request.Controls);
            Assert.Null(request.DistinguishedName);
            Assert.Null(request.RequestId);
        }
コード例 #8
0
 public void TestCompareRequest()
 {
     using (LdapConnection connection = GetConnection())
     {
         // negative case: ou=NotFound does not exist
         var cmp = new CompareRequest("ou=NotFound," + LdapConfiguration.Configuration.SearchDn, "ou", "NotFound");
         Assert.Throws <DirectoryOperationException>(() => connection.SendRequest(cmp));
     }
 }
コード例 #9
0
        public static bool validateUser(LdapConnection connection, string username, string password)
        {
            var request = new CompareRequest(username,
                                             "userPassword",
                                             password
                                             );
            var response = (CompareResponse)connection.SendRequest(request);

            return(response.ResultCode == ResultCode.CompareTrue);
        }
コード例 #10
0
        /// <summary>
        /// Searches for a user and compares the password.
        /// We assume all users are at base DN ou=users,dc=example,dc=com and that passwords are
        /// hashed using SHA1 (no salt) in OpenLDAP format.
        /// </summary>
        /// <param name="username">Username</param>
        /// <param name="password">Password</param>
        /// <returns>true if the credentials are valid, false otherwise</returns>
        public bool validateUser(string username, string password)
        {
            var sha1    = new SHA1Managed();
            var digest  = Convert.ToBase64String(sha1.ComputeHash(System.Text.Encoding.UTF8.GetBytes(password)));
            var request = new CompareRequest(string.Format("CN={0},CN=Users,DC=dq,DC=com,DC=lb", username),
                                             "sAMAccountName", username); //"{SHA}" + digest
            var response = (CompareResponse)connection.SendRequest(request);

            return(response.ResultCode == ResultCode.CompareTrue);
        }
コード例 #11
0
        /// <summary>
        /// Searches for a user and compares the password.
        /// We assume all users are at base DN ou=users,dc=example,dc=com and that passwords are
        /// hashed using SHA1 (no salt) in OpenLDAP format.
        /// </summary>
        /// <param name="connection">An OPEN connection to LDAP server</param>
        /// <param name="username">Username</param>
        /// <param name="password">Password</param>
        /// <returns>True if the credentials are valid, false otherwise</returns>
        public static bool ValidateUser(LdapConnection connection, string username, string password)
        {
            var sha1    = new SHA1Managed();
            var digest  = Convert.ToBase64String(sha1.ComputeHash(System.Text.Encoding.UTF8.GetBytes(password)));
            var request = new CompareRequest(string.Format("uid={0},ou=users,dc=example,dc=com", username),
                                             "userPassword", "{SHA}" + digest);
            var response = (CompareResponse)connection.SendRequest(request);

            return(response.ResultCode == ResultCode.CompareTrue);
        }
コード例 #12
0
        public void Ctor_DistinguishedName_AttributeName_ByteArrayValue(string distinguishedName, string attributeName, byte[] value)
        {
            var request = new CompareRequest(distinguishedName, attributeName, value);

            Assert.Equal(attributeName, request.Assertion.Name);
            Assert.Equal(new byte[][] { value }, request.Assertion.GetValues(typeof(byte[])));

            Assert.Empty(request.Controls);
            Assert.Equal(distinguishedName, request.DistinguishedName);
            Assert.Null(request.RequestId);
        }
コード例 #13
0
        public void Ctor_DistinguishedName_AttributeName_Uri()
        {
            var uri     = new Uri("http://microsoft.com");
            var request = new CompareRequest("DistinguishedName", "AttributeName", uri);

            Assert.Equal("AttributeName", request.Assertion.Name);
            Assert.Equal(uri, Assert.Single(request.Assertion));

            Assert.Empty(request.Controls);
            Assert.Equal("DistinguishedName", request.DistinguishedName);
            Assert.Null(request.RequestId);
        }
コード例 #14
0
        public void Ctor_DistinguishedName_Assertion()
        {
            var assertion = new DirectoryAttribute {
                "value"
            };
            var request = new CompareRequest("DistinguishedName", assertion);

            Assert.NotSame(assertion, request.Assertion);
            Assert.Equal(assertion, request.Assertion);
            Assert.Empty(request.Controls);
            Assert.Equal("DistinguishedName", request.DistinguishedName);
            Assert.Null(request.RequestId);
        }
コード例 #15
0
        static void Main(string[] args)
        {
            try
            {
                var serverLdap = "172.16.10.82";
                //var serverLdap = "172.16.10.42";
                //var serverLdap = "172.16.10.44:389";
                var organization      = "garrahan";
                var usuarioConexionDN = $"cn=ldap_usr,o={organization}";
                var claveConexion     = "usuldap";
                var usuario           = "ldaptester1";
                var clave             = "12ClaveAB";
                //var usuarioDN = $"cn={usuario},ou=UsuariosLDAP,o={organization}";

                using (var ldap = new LdapConnection(serverLdap))
                {
                    ldap.AuthType = AuthType.Basic;
                    ldap.SessionOptions.ProtocolVersion = 3;
                    ldap.AuthType = AuthType.Basic;
                    var credential = new System.Net.NetworkCredential(usuarioConexionDN, claveConexion);
                    ldap.Bind(credential);
                    BuscarUsuarioEnOU(ldap);
                    var searcher = new SearchRequest
                    {
                        Filter = $"(&(objectClass=user)(uid={usuario}))"
                    };
                    var searchResult = (SearchResponse)ldap.SendRequest(searcher);
                    // Debe haber una unica entrada porque se supone que los usuarios son únicos sin importar en que lugar del arbol se encuentren
                    if (searchResult.Entries.Count == 1)
                    {
                        var usuarioDN     = searchResult.Entries[0].DistinguishedName;// "CN=soLopez,OU=DDESARROL,OU=GSISTEMAS,OU=ADM,O=GARRAHAN";//$"cn={usuario},ou=UsuariosLDAP,o={organization}";
                        var request       = new CompareRequest(usuarioDN, "userPassword", clave);
                        var response      = (CompareResponse)ldap.SendRequest(request);
                        var esClaveValida = response.ResultCode == ResultCode.CompareTrue
                            ? "Valida"
                            : "Invalida";
                        Console.WriteLine($"La clave es: {esClaveValida}");
                    }
                    else
                    {
                        Console.WriteLine($"Usuario no encontrado");
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.InnerException?.Message ?? ex.Message);
            }
            Console.WriteLine("termino");
            Console.ReadKey();
        }
コード例 #16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name=""></param>
        public OperationResult <CompareReply> Compare(CompareRequest r)
        {
            OperationResult <CompareReply> res;

            try
            {
                var entityBase = DataContext
                                 .Dashboards
                                 .Find(r.BaseDashboardId);

                var entityNew = DataContext
                                .Dashboards
                                .Find(r.NewDashboardId);

                if (null == entityBase || null == entityNew)
                {
                    return(OperationResult <CompareReply> .Create(ErrorCode.BadGetDashboard));
                }

                var verEntityBase = DataContext
                                    .DashboardVersions
                                    .FirstOrDefault(x => x.DashboardId == r.BaseDashboardId && x.Version == r.BaseVersion);

                var verEntityNew = DataContext
                                   .DashboardVersions
                                   .FirstOrDefault(x => x.DashboardId == r.NewDashboardId && x.Version == r.NewVersion);

                if (null == verEntityBase || null == verEntityNew)
                {
                    return(OperationResult <CompareReply> .Create(ErrorCode.BadGetDashboardVersion));
                }

                var jdp  = new JsonDiffPatch();
                var diff = jdp.Diff(verEntityBase.Data, verEntityNew.Data);

                var reply = new CompareReply()
                {
                    Base = verEntityBase.Data,
                    New  = verEntityNew.Data,
                    Diff = diff
                };

                res = OperationResult <CompareReply> .Create(reply);
            }
            catch (Exception e)
            {
                res = OperationResult <CompareReply> .Create(ErrorCode.BadDashboardRestore, e);
            }

            return(res);
        }
コード例 #17
0
        public bool CheckFiles(CompareRequest files)
        {
            string extension = Path.GetExtension(files.guids[0].GetGuid());

            // check if files extensions are the same and support format file
            if (!CheckSupportedFiles(extension))
            {
                return(false);
            }
            foreach (CompareFileDataRequest path in files.guids)
            {
                if (!extension.Equals(Path.GetExtension(path.GetGuid())))
                {
                    return(false);
                }
            }
            return(true);
        }
コード例 #18
0
        private CompareResultResponse CompareTwoDocuments(CompareRequest compareRequest)
        {
            // to get correct coordinates we will compare document twice
            // this is a first comparing to get correct coordinates of the insertions and style changes
            string extension = Path.GetExtension(compareRequest.guids[0].GetGuid());
            string guid      = Guid.NewGuid().ToString();
            //save all results in file
            string resultGuid = Path.Combine(globalConfiguration.Comparison.GetResultDirectory(), guid + extension);

            Comparer compareResult = CompareFiles(compareRequest, resultGuid);

            ChangeInfo[] changes = compareResult.GetChanges();

            CompareResultResponse compareResultResponse = GetCompareResultResponse(changes, resultGuid);

            compareResultResponse.SetExtension(extension);
            return(compareResultResponse);
        }
コード例 #19
0
ファイル: Dsml_SendRequest.cs プロジェクト: imiyu/DiscUsage
        static void Compare()
        {
            string attributeName         = "description";
            string valueToCompareAgainst = "This is a sample OU";

            // create a request to do compare on the object
            CompareRequest compareRequest = new CompareRequest(
                ou1,
                attributeName,
                valueToCompareAgainst
                );

            // send the request through the connection
            CompareResponse compareResponse =
                (CompareResponse)dsmlConnection.SendRequest(compareRequest);

            Console.WriteLine("The result of the comparison is:" +
                              compareResponse.ResultCode);
        }
コード例 #20
0
        public async Task <ActionResult> CompareImages(string userid, CompareRequest request)
        {
            IFaceClient client   = Authenticate(ENDPOINT, SUBSCRIPTION_KEY);
            var         response = new UploadResponse()
            {
                UserId = userid.ToString()
            };

            IList <Guid?> targetFaceIds = new List <Guid?>();

            targetFaceIds.Add(Guid.Parse(request.ComparasionFaceId));

            var result = await FindSimilar(client, Guid.Parse(request.BaseFaceId), targetFaceIds);

            var json = JsonConvert.SerializeObject(result.FirstOrDefault());

            response.Response = json;
            return(Ok(response));
        }
コード例 #21
0
        public HttpResponseMessage CompareString([FromBody] CompareRequest request)
        {
            try
            {
                Log.Info("initialiing compare");

                var httpResponseMessage = new HttpResponseMessage()
                {
                    Content = new ObjectContent <int[]>(StringCompare.Compare(request.SourceString, request.SubString).ToArray(),
                                                        Configuration.Formatters.JsonFormatter),
                    StatusCode = HttpStatusCode.OK,
                };
                return(httpResponseMessage);
            }
            catch (Exception ex)
            {
                var errorMessage = Helper.HttpResponseErrorMessage(ex.Message, _correlationId);
                Log.Error(string.Format("{0} - {1}", _correlationId, "Exception occurred: Unable to determine traingle type"), ex);
                throw new HttpResponseException(
                          Request.CreateErrorResponse(HttpStatusCode.InternalServerError, errorMessage));
            }
        }
コード例 #22
0
        //var username = $"cn=ldap_usr,o={organization}";
        //var password = "******";
        //var username = $"cn=solopez,ou=DDESARROL,ou=GSISTEMAS,ou=ADM,o={organization}";
        //var password = "******";

        //var usuario = "lestrada";
        //var usuario = "solopez";
        //var clave = "1qaz2WSfX";
        //var username = $"cn=ldap_portal,ou=DDESARROL,ou=GSISTEMAS,ou=ADM,o={organization}";
        //var claveConexion = "G4rr4h4n19";



        /*
         * Console.WriteLine($"Usuario {usuarioConexion} valida clave {validateUser(ldap, usuarioConexion, claveConexion)}");
         * Console.WriteLine($"Usuario {usuario} valida clave {validateUser(ldap, $"cn={usuario},ou=UsuariosLDAP,o={organization}", clave)}");
         *
         * var searcher = new System.DirectoryServices.DirectorySearcher();
         * searcher.Filter = String.Format("sAMAccountName={0}", usuario);
         * searcher.SearchScope = System.DirectoryServices.SearchScope.Subtree;
         * searcher.CacheResults = false;
         *
         * var searchResult = searcher.FindOne();
         * if (searchResult == null)
         * {
         *  Console.WriteLine($"Usuario {usuario} no encontrado");
         * }
         *
         * var userEntry = searchResult.GetDirectoryEntry();
         * Console.WriteLine($"Usuario encontrado: {usuario} - {userEntry.Properties["givenName"].Value}");
         * Console.WriteLine($"clave {userEntry.Properties["userPassword"].Value}");
         * Console.WriteLine("The Child ADS objects are:");
         * foreach (System.DirectoryServices.DirectoryEntry myChildDirectoryEntry in userEntry.Children)
         *  Console.WriteLine(myChildDirectoryEntry.Path);
         *
         * Console.WriteLine("Prueba cambio de clave");
         *
         * userEntry.Properties["givenName"].Value = "hola";// $"\"{clave}2\"";
         * userEntry.CommitChanges();
         */
        /*
         * LdapAttribute attributePassword = new LdapAttribute("userPassword",
         * newPassword);
         * lc.Modify(modifyDN, new LdapModification(
         *  LdapModification.REPLACE, attributePassword));
         */
        /*
         * var resultValueC = userEntry.Invoke("ChangePassword", new object[] { "1234Clave1", $"\"{clave}2\"" });
         * userEntry.CommitChanges();
         * Console.WriteLine($"cambio clave - resultValue: {resultValueC}");
         */

        /*
         * var resultValue = userEntry.Invoke("SetPassword", new object[] { clave });
         * userEntry.Properties["LockOutTime"].Value = 0;
         * userEntry.Close();
         * userEntry.CommitChanges();
         * Console.WriteLine($"set clave - resultValue: {resultValue}");
         */

        /*
         * //string newPassword = Membership.GeneratePassword(12, 4);
         * string quotePwd = String.Format(@"""{0}""", clave);
         * byte[] pwdBin = System.Text.Encoding.Unicode.GetBytes(quotePwd);
         * userEntry.Properties["unicodePwd"].Value = pwdBin;
         * userEntry.CommitChanges();
         * Console.WriteLine($"set unicodePwd");
         */
        static void _Main(string[] args)
        {
            try
            {
                var serverLdap = "172.16.10.82";
                //var serverLdap = "172.16.10.42";
                //var serverLdap = "172.16.10.44:389";
                var organization      = "garrahan";
                var usuarioConexionDN = $"cn=ldap_usr,o={organization}";
                var claveConexion     = "usuldap";
                var usuario           = "ldaptester1";
                var clave             = "12ClaveAB";
                var usuarioDN         = $"cn={usuario},ou=UsuariosLDAP,o={organization}";

                using (var ldap = new LdapConnection(serverLdap))
                {
                    ldap.AuthType = AuthType.Basic;
                    ldap.SessionOptions.ProtocolVersion = 3;
                    ldap.AuthType = AuthType.Basic;
                    var credential = new System.Net.NetworkCredential(usuarioConexionDN, claveConexion);
                    ldap.Bind(credential);

                    var request       = new CompareRequest(usuarioDN, "userPassword", clave);
                    var response      = (CompareResponse)ldap.SendRequest(request);
                    var esClaveValida = response.ResultCode == ResultCode.CompareTrue
                        ? "Valida"
                        : "Invalida";
                    Console.WriteLine($"La clave es: {esClaveValida}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.InnerException?.Message ?? ex.Message);
            }
            Console.WriteLine("termino");
            Console.ReadKey();
        }
コード例 #23
0
        /// <summary>
        /// Creates a CompareRequest packet.
        /// </summary>
        /// <param name="context">The user context which contains message ID.</param>
        /// <param name="objectDn">The DN of the object to be compared.</param>
        /// <param name="attributeName">The name of the attribute.</param>
        /// <param name="attributeValue">The value of the attribute.</param>
        /// <returns>The packet that contains the request.</returns>
        internal override AdtsCompareRequestPacket CreateCompareRequest(
            AdtsLdapContext context,
            string objectDn,
            string attributeName,
            string attributeValue)
        {
            CompareRequest compareRequest = new CompareRequest(
                new LDAPDN(objectDn ?? string.Empty),
                new AttributeValueAssertion(
                    new AttributeType(attributeName ?? string.Empty),
                    new AttributeValue(attributeValue ?? string.Empty)));

            LDAPMessage_protocolOp operation = new LDAPMessage_protocolOp();

            operation.SetData(LDAPMessage_protocolOp.compareDNRequest, compareRequest);

            LDAPMessage message             = new LDAPMessage(new MessageID(context.MessageId), operation);
            AdtsCompareRequestPacket packet = new AdtsCompareRequestPacket();

            packet.ldapMessagev2 = message;
            packet.messageId     = context.MessageId;

            return(packet);
        }
コード例 #24
0
        /// <summary>
        /// Creates a CompareRequest packet.
        /// </summary>
        /// <param name="context">The user context which contains message ID.</param>
        /// <param name="objectDn">The DN of the object to be compared.</param>
        /// <param name="attributeName">The name of the attribute.</param>
        /// <param name="attributeValue">The value of the attribute.</param>
        /// <returns>The packet that contains the request.</returns>
        internal override AdtsCompareRequestPacket CreateCompareRequest(
            AdtsLdapContext context,
            string objectDn,
            string attributeName,
            string attributeValue)
        {
            CompareRequest compareRequest = new CompareRequest(
                new LDAPDN(objectDn ?? string.Empty),
                new AttributeValueAssertion(
                    new AttributeDescription(attributeName ?? string.Empty),
                    new AssertionValue(attributeValue ?? string.Empty)));

            LDAPMessage_protocolOp operation = new LDAPMessage_protocolOp();
            operation.SetData(LDAPMessage_protocolOp.extendedReq, compareRequest);

            LDAPMessage message = new LDAPMessage(new MessageID(context.MessageId), operation, null);
            AdtsCompareRequestPacket packet = new AdtsCompareRequestPacket();
            packet.ldapMessagev3 = message;
            packet.messageId = context.MessageId;

            return packet;
        }
コード例 #25
0
 public CreateCompareParameter(CompareRequest request)
 {
     Request = request;
 }
コード例 #26
0
ファイル: Dsml_BatchRequest.cs プロジェクト: imiyu/DiscUsage
        static void SendBatchRequest()
        {
            DsmlRequestDocument batchRequest = new DsmlRequestDocument();
            AddRequest          addRequest;
            ModifyRequest       modifyRequest;
            CompareRequest      compareRequest;
            DeleteRequest       deleteRequest;

            // create new OUs under the specified OU
            ou1 = "OU=sampleOU1," + targetOU;
            ou2 = "OU=sampleOU2," + targetOU;
            ou3 = "OU=sampleOU3," + targetOU;
            string objectClass = "organizationalUnit";


            // add multiple requests (make sure )
            addRequest           = new AddRequest(ou1, objectClass);
            addRequest.RequestId = "Add1";
            batchRequest.Add(addRequest);

            addRequest           = new AddRequest(ou2, objectClass);
            addRequest.RequestId = "Add2";
            batchRequest.Add(addRequest);

            addRequest           = new AddRequest(ou3, objectClass);
            addRequest.RequestId = "Add3";
            batchRequest.Add(addRequest);


            compareRequest           = new CompareRequest(ou1, "distinguishedName", ou1);
            compareRequest.RequestId = "Compare1";
            batchRequest.Add(compareRequest);

            deleteRequest           = new DeleteRequest(ou1);
            deleteRequest.RequestId = "Delete1";
            batchRequest.Add(deleteRequest);

            compareRequest           = new CompareRequest(ou2, "distinguishedName", ou2);
            compareRequest.RequestId = "Compare2";
            batchRequest.Add(compareRequest);

            modifyRequest = new ModifyRequest(ou2,
                                              DirectoryAttributeOperation.Replace,
                                              "description",
                                              "Testing BatchRequest");
            modifyRequest.RequestId = "Modify1";
            batchRequest.Add(modifyRequest);

            deleteRequest           = new DeleteRequest(ou2);
            deleteRequest.RequestId = "Delete2";
            batchRequest.Add(deleteRequest);

            deleteRequest           = new DeleteRequest(ou3);
            deleteRequest.RequestId = "Delete3";
            batchRequest.Add(deleteRequest);

            DsmlResponseDocument batchResponse =
                dsmlConnection.SendRequest(batchRequest);

            foreach (DirectoryResponse response in batchResponse)
            {
                Console.WriteLine(response.GetType().Name + ": \tId=" +
                                  response.RequestId + ",\tResultCode=" +
                                  response.ResultCode);
            }

            Console.WriteLine("Batch request has been processed successfully.");
        }
コード例 #27
0
        public static DERProtocolOperation Extract(ICollection <byte> buffer)
        {
            var result = new DERProtocolOperation();

            result.ExtractTagAndLength(buffer);
            switch (result.Tag.LdapCommand)
            {
            case LdapCommands.SearchRequest:
                result.Operation = SearchRequest.Extract(buffer);
                break;

            case LdapCommands.BindRequest:
                result.Operation = BindRequest.Extract(buffer);
                break;

            case LdapCommands.UnbindRequest:
                result.Operation = UnbindRequest.Extract(buffer);
                break;

            case LdapCommands.AddRequest:
                result.Operation = AddRequest.Extract(buffer);
                break;

            case LdapCommands.DelRequest:
                result.Operation = DelRequest.Extract(buffer, result.Length);
                break;

            case LdapCommands.ModifyDNRequest:
                result.Operation = ModifyDNRequest.Extract(buffer);
                break;

            case LdapCommands.CompareRequest:
                result.Operation = CompareRequest.Extract(buffer);
                break;

            case LdapCommands.AbandonRequest:
                result.Operation = AbandonRequest.Extract(buffer);
                break;

            case LdapCommands.ModifyRequest:
                result.Operation = ModifyRequest.Extract(buffer);
                break;

            case LdapCommands.SearchResultDone:
                result.Operation = SearchResultDone.Extract(buffer);
                break;

            case LdapCommands.BindResponse:
                result.Operation = BindResponse.Extract(buffer);
                break;

            case LdapCommands.AddResponse:
                result.Operation = AddResponse.Extract(buffer);
                break;

            case LdapCommands.SearchResultEntry:
                result.Operation = SearchResultEntry.Extract(buffer);
                break;
            }

            return(result);
        }
コード例 #28
0
 public IActionResult Compare(CompareRequest r) =>
 Repo
 .Compare(r.ToModel())
 .ToActionResult(x => ToCompareReply(x));
コード例 #29
0
        public CompareResultResponse Compare(CompareRequest compareRequest)
        {
            CompareResultResponse compareResultResponse = CompareTwoDocuments(compareRequest);

            return(compareResultResponse);
        }