예제 #1
0
        public static CompareRequest Extract(ICollection <byte> buffer)
        {
            var result = new CompareRequest();

            result.Entry = DEROctetString.Extract(buffer);
            result.Ava   = AttributeValueAssertion.Extract(buffer, true);

            return(result);
        }
예제 #2
0
        public NyGovUser GetUserByUid(String uid, String ou)
        {
            NyGovUser user = new NyGovUser();

            BatchRequest     batch  = new BatchRequest();
            SearchRequest    search = new SearchRequest();
            Filter           filter = new Filter();
            dsmlQueryService client = new dsmlQueryService();

            client.Url          = "https://qadaws.svc.ny.gov/daws/services/dsmlSoapQuery";
            batch.searchRequest = new SearchRequest[1] {
                search
            };
            client.Credentials = new NetworkCredential("prxwsTL1HESC", "sfvwRMnB7N");
            //search.dn = "'o=ny, c=us'";
            search.dn = ou;
            AttributeValueAssertion ava = new AttributeValueAssertion();

            ava.name  = "uid";
            ava.value = uid;
            filter.ItemElementName = ItemChoiceType.equalityMatch;
            filter.Item            = ava;
            search.filter          = filter;
            search.scope           = SearchRequestScope.wholeSubtree;

            AttributeDescriptions attrBucket = new AttributeDescriptions();

            AttributeDescription[] attributeDescriptionList = new AttributeDescription[7];
            attributeDescriptionList[0] = new AttributeDescription()
            {
                name = "nyacctgovernment"
            };
            attributeDescriptionList[1] = new AttributeDescription()
            {
                name = "sn"
            };
            attributeDescriptionList[2] = new AttributeDescription()
            {
                name = "givenname"
            };
            attributeDescriptionList[3] = new AttributeDescription()
            {
                name = "mail"
            };
            attributeDescriptionList[4] = new AttributeDescription()
            {
                name = "uid"
            };
            attributeDescriptionList[5] = new AttributeDescription()
            {
                name = "nyacctpersonal"
            };
            attributeDescriptionList[6] = new AttributeDescription()
            {
                name = "nyacctbusiness"
            };
            attrBucket.attribute = attributeDescriptionList;

            search.attributes = attrBucket;
            //client.PreAuthenticate = true;
            //client.AllowAutoRedirect = true;



            BatchResponse response = null;

            try
            {
                //WebProxy myproxy = new WebProxy("proxy-internet.cio.state.nyenet", 80);
                //myproxy.BypassProxyOnLocal = false;
                //myproxy.Credentials = new NetworkCredential("mjordan", "fuckU023$6");
                //client.Proxy = myproxy;
                response = client.directoryRequest(batch);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Dang it.  probably a 502 from the server and even more probable about async.  " + e);
            }
            System.Diagnostics.Debug.WriteLine("just sent the request for a batch seach to directory request");
            System.Diagnostics.Debug.WriteLine("Response: " + response);

            if (response != null)
            {
                SearchResponse[] sResponses = response.searchResponse;
                System.Diagnostics.Debug.WriteLine("Search Response: " + sResponses);
                if (sResponses != null)
                {
                    System.Diagnostics.Debug.WriteLine("Got " + sResponses.Length + " responses");
                    for (int i = 0; i < sResponses.Length; i++)
                    {
                        System.Diagnostics.Debug.WriteLine("Search Response #" + i + " requestID: " + sResponses[i].requestID);
                        SearchResultEntry[] srEntries = sResponses[i].searchResultEntry;
                        LDAPResult          srd       = sResponses[i].searchResultDone;
                        if (srd != null)
                        {
                            System.Diagnostics.Debug.WriteLine("LDAP Result AKA search result done");
                            System.Diagnostics.Debug.WriteLine(srd.resultCode.descr);
                        }
                        if (srEntries != null)
                        {
                            System.Diagnostics.Debug.WriteLine("Search Result Entries Cycle");
                            for (int r = 0; r < srEntries.Length; r++)
                            {
                                user.NysSogUid = srEntries[r].dn;
                                System.Diagnostics.Debug.WriteLine(srEntries[r].dn);
                                System.Diagnostics.Debug.WriteLine(srEntries[r].attr);
                                DsmlAttr[] attributeList = srEntries[r].attr;
                                if (attributeList != null)
                                {
                                    for (int a = 0; a < attributeList.Length; a++)
                                    {
                                        System.Diagnostics.Debug.WriteLine("name: " + attributeList[a].name);
                                        String        attName      = attributeList[a].name;
                                        StringBuilder valueBuilder = new StringBuilder();
                                        if (attributeList[a].value != null)
                                        {
                                            for (int x = 0; x < attributeList[a].value.Length; x++)
                                            {
                                                System.Diagnostics.Debug.WriteLine("value: " + attributeList[a].value[x]);
                                                valueBuilder.Append(attributeList[a].value[x]);
                                            }
                                        }

                                        if (attName.Equals("uid"))
                                        {
                                            user.Uid = valueBuilder.ToString();
                                        }
                                        else if (attName.Equals("cn"))
                                        {
                                            user.CommonName = valueBuilder.ToString();
                                        }
                                        else if (attName.Equals("nyacctgovernment"))
                                        {
                                            user.IsGovernmentAccount = Convert.ToBoolean(valueBuilder.ToString());
                                        }
                                        else if (attName.Equals("sn"))
                                        {
                                            user.Surname = valueBuilder.ToString();
                                        }
                                        else if (attName.Equals("givenname"))
                                        {
                                            user.Firstname = valueBuilder.ToString();
                                        }
                                        else if (attName.Equals("mail"))
                                        {
                                            user.EmailAddress = valueBuilder.ToString();
                                        }
                                        else if (attName.Equals("nyacctbusiness"))
                                        {
                                            user.IsBusinessPartnerAccount = Convert.ToBoolean(valueBuilder.ToString());
                                        }
                                        else if (attName.Equals("nyacctpersonal"))
                                        {
                                            user.IsCitizenAccount = Convert.ToBoolean(valueBuilder.ToString());
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            System.Diagnostics.Debug.WriteLine("Search results list is null for some reason");
                        }
                    }
                }



                ErrorResponse[] eResponses = response.errorResponse;

                if (eResponses != null)
                {
                    System.Diagnostics.Debug.WriteLine("Checking out errors from the batch response");
                    System.Diagnostics.Debug.WriteLine("Errors Count: " + eResponses.Length);
                    //After adding a attribute value assertion and fitler to the search the error response ends up null so make a check for that
                    if (eResponses != null)
                    {
                        if (eResponses.Length > 0)
                        {
                            System.Diagnostics.Debug.WriteLine("Error Response");
                            for (int i = 0; i < eResponses.Length; i++)
                            {
                                ErrorResponse error = eResponses[i];
                                System.Diagnostics.Debug.WriteLine(error.message);
                                System.Diagnostics.Debug.WriteLine(error.detail);
                                System.Diagnostics.Debug.WriteLine(error.type);
                            }
                        }
                    }
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine("No errors from the response");
                }
            }


            return(user);
        }
        public String GetUser(String uid)
        {
            String           user   = "";
            BatchRequest     batch  = new BatchRequest();
            SearchRequest    search = new SearchRequest();
            Filter           filter = new Filter();
            dsmlQueryService client = new dsmlQueryService();

            client.Url          = "https://qadaws.svc.ny.gov/daws/services/dsmlSoapQuery";
            batch.searchRequest = new SearchRequest[1] {
                search
            };
            client.Credentials = new NetworkCredential("prxwsTL1HESC", "sfvwRMnB7N");
            search.dn          = "'o=ny, c=us'";

            AttributeValueAssertion ava = new AttributeValueAssertion();

            ava.name  = "uid";
            ava.value = "jjtester3";
            filter.ItemElementName = ItemChoiceType.equalityMatch;
            filter.Item            = ava;
            search.filter          = filter;
            search.scope           = SearchRequestScope.wholeSubtree;


            //client.PreAuthenticate = true;
            //client.AllowAutoRedirect = true;



            BatchResponse response = null;

            try
            {
                //WebProxy myproxy = new WebProxy("proxy-internet.cio.state.nyenet", 80);
                //myproxy.BypassProxyOnLocal = false;
                //myproxy.Credentials = new NetworkCredential("mjordan", "fuckU023$6");
                //client.Proxy = myproxy;
                response = client.directoryRequest(batch);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Dang it.  probably a 502 from the server and even more probable about async.  " + e);
            }
            System.Diagnostics.Debug.WriteLine("just sent the request for a batch seach to directory request");
            System.Diagnostics.Debug.WriteLine("Response: " + response);

            if (response != null)
            {
                SearchResponse[] sResponses = response.searchResponse;
                System.Diagnostics.Debug.WriteLine("Search Response: " + sResponses);
                if (sResponses != null)
                {
                    System.Diagnostics.Debug.WriteLine("Got " + sResponses.Length + " responses");
                    for (int i = 0; i < sResponses.Length; i++)
                    {
                        System.Diagnostics.Debug.WriteLine("Search Response #" + i + " requestID: " + sResponses[i].requestID);
                        SearchResultEntry[] srEntries = sResponses[i].searchResultEntry;
                        LDAPResult          srd       = sResponses[i].searchResultDone;
                        if (srd != null)
                        {
                            System.Diagnostics.Debug.WriteLine("LDAP Result AKA search result done");
                            System.Diagnostics.Debug.WriteLine(srd.resultCode.descr);
                        }
                        if (srEntries != null)
                        {
                            System.Diagnostics.Debug.WriteLine("Search Result Entries Cycle");
                            for (int r = 0; r < srEntries.Length; r++)
                            {
                                System.Diagnostics.Debug.WriteLine(srEntries[r].dn);
                                System.Diagnostics.Debug.WriteLine(srEntries[r].attr);
                                DsmlAttr[] attributeList = srEntries[r].attr;
                                if (attributeList != null)
                                {
                                    for (int a = 0; a < attributeList.Length; a++)
                                    {
                                        System.Diagnostics.Debug.WriteLine("name: " + attributeList[a].name);
                                        for (int x = 0; x < attributeList[a].value.Length; x++)
                                        {
                                            System.Diagnostics.Debug.WriteLine("value: " + attributeList[a].value[a]);
                                            user = attributeList[a].value[a];
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            System.Diagnostics.Debug.WriteLine("Search results list is null for some reason");
                        }
                    }
                }



                ErrorResponse[] eResponses = response.errorResponse;
                System.Diagnostics.Debug.WriteLine("Checking out errors from the batch response");
                System.Diagnostics.Debug.WriteLine("Errors: " + eResponses);
                //After adding a attribute value assertion and fitler to the search the error response ends up null so make a check for that
                if (eResponses != null)
                {
                    if (eResponses.Length > 0)
                    {
                        System.Diagnostics.Debug.WriteLine("Error Response");
                        for (int i = 0; i < eResponses.Length; i++)
                        {
                            ErrorResponse error = eResponses[i];
                            System.Diagnostics.Debug.WriteLine(error.message);
                            System.Diagnostics.Debug.WriteLine(error.detail);
                            System.Diagnostics.Debug.WriteLine(error.type);
                        }
                    }
                }
            }

            return(user);
        }
예제 #4
0
        public directoryRequestResponse findUser(String uid, String ou)
        {
            System.Diagnostics.Debug.WriteLine("Going to find a specific user with the service reference proxy");
            //fiddler
            GlobalProxySelection.Select = new WebProxy("127.0.0.1", 8888);
            dsmlSoapClient           client       = this.proxyfactory.createClient();
            directoryRequestRequest  mainRequest  = proxyfactory.createDirReq(ProxyFactory.BatchRequestTypes.searchRequest);
            directoryRequestResponse mainResponse = new directoryRequestResponse();
            DsmlMessage sReq = mainRequest.batchRequest.Items[0];

            if (sReq is SearchRequest)
            {
                SearchRequest search = (SearchRequest)sReq;
                //ou=People,ou=NYS Office of Information Technology Services,ou=Government,o=ny,c=us
                search.dn = "ou=People,ou=" + ou + ",ou=Government,o=ny,c=us";
                System.Diagnostics.Debug.WriteLine("search.dn");
                System.Diagnostics.Debug.WriteLine(search.dn);
                Filter filter = new Filter();

                AttributeValueAssertion ava = new AttributeValueAssertion();
                ava.name  = "uid";
                ava.value = uid;
                filter.ItemElementName = ItemChoiceType.equalityMatch;
                filter.Item            = ava;
                search.scope           = SearchRequestScope.wholeSubtree;
                search.filter          = filter;

                AttributeDescriptions  attrBucket = new AttributeDescriptions();
                AttributeDescription[] attributeDescriptionList = new AttributeDescription[9];
                attributeDescriptionList[0] = new AttributeDescription()
                {
                    name = "nyacctgovernment"
                };
                attributeDescriptionList[1] = new AttributeDescription()
                {
                    name = "sn"
                };
                attributeDescriptionList[2] = new AttributeDescription()
                {
                    name = "givenname"
                };
                attributeDescriptionList[3] = new AttributeDescription()
                {
                    name = "mail"
                };
                attributeDescriptionList[4] = new AttributeDescription()
                {
                    name = "uid"
                };
                attributeDescriptionList[5] = new AttributeDescription()
                {
                    name = "nyacctpersonal"
                };
                attributeDescriptionList[6] = new AttributeDescription()
                {
                    name = "nyacctbusiness"
                };
                attributeDescriptionList[7] = new AttributeDescription()
                {
                    name = "telephonenumber"
                };
                attributeDescriptionList[8] = new AttributeDescription()
                {
                    name = "nydob"
                };
                attrBucket.attribute = attributeDescriptionList;
                search.attributes    = attrBucket;

                mainResponse = callClient(client, mainRequest);
            }

            return(mainResponse);
        }