public static CompareRequest Extract(ICollection <byte> buffer) { var result = new CompareRequest(); result.Entry = DEROctetString.Extract(buffer); result.Ava = AttributeValueAssertion.Extract(buffer, true); return(result); }
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); }
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); }