Advertisement
Guest User

Untitled

a guest
May 17th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.20 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.ServiceModel;
  6. using System.ServiceModel.Channels;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9.  
  10. namespace Ahcccs.Isd.Aes.Breaz.Core.WCF.SOAP
  11. {
  12. public class ConsumeGetVendorLookup
  13. {
  14. public void Consume(string wso2token)
  15. {
  16. Header header = new Header();
  17. header.Type = "?";
  18. header.ReturnCode = "?";
  19. header.Requestor = "?";
  20. header.Recipient = "?";
  21. header.Date = "?";
  22. Requestor requestor = new Requestor();
  23. requestor.UserID = "";
  24. requestor.Password = "";
  25.  
  26. header.Subject = requestor;
  27.  
  28. Payload payload = new Payload();
  29. GetVendorCustomerIn getVendorCustomer = new GetVendorCustomerIn();
  30. getVendorCustomer.IncludeGeneralInfo = true;
  31. getVendorCustomer.IncludeHeadquarters = true;
  32. getVendorCustomer.IncludePrenote_EFT = true;
  33. getVendorCustomer.IncludePrenote_EFTSpecified = true;
  34. getVendorCustomer.Vendor_Customer = "{our customer number}";
  35.  
  36. payload.GetVendorCustomerIn = getVendorCustomer;
  37.  
  38. AdvMessage advMessage = new AdvMessage();
  39. advMessage.Header = header;
  40. advMessage.Payload = payload;
  41.  
  42. GetVendorCustomer customer = new GetVendorCustomer();
  43. customer.AdvMessage = advMessage;
  44.  
  45. VendorServicesClient wcfClient = new VendorServicesClient();
  46. var s = wcfClient.State;
  47. wcfClient.Open();
  48.  
  49. using (new OperationContextScope(wcfClient.InnerChannel))
  50. {
  51. WebProxy wproxy = new WebProxy(new Uri("http://{our proxy server and port}"), true);
  52. wproxy.BypassProxyOnLocal = true;
  53. wproxy.UseDefaultCredentials = true;
  54.  
  55. WebRequest.DefaultWebProxy = wproxy;
  56.  
  57. // Add a HTTP Header to an outgoing request
  58. HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
  59. requestMessage.Headers["Authorization"] = " Bearer " + wso2token;
  60.  
  61. OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
  62.  
  63. var result = wcfClient.getVendorCustomer(customer);
  64. }
  65. }
  66. }
  67. }
  68.  
  69. using System;
  70. using System.Collections.Generic;
  71. using System.Linq;
  72. using System.Net;
  73. using System.ServiceModel;
  74. using System.ServiceModel.Channels;
  75. using System.ServiceModel.Description;
  76. using System.ServiceModel.Dispatcher;
  77. using System.ServiceModel.Web;
  78. using System.Text;
  79. using System.Threading.Tasks;
  80.  
  81. namespace Ahcccs.Isd.Aes.Breaz.Core.WCF.SOAP
  82. {
  83. public class ConsumeGetVendorLookup
  84. {
  85. public void Consume(string wso2token)
  86. {
  87. Header header = new Header();
  88. header.Type = "?";
  89. header.ReturnCode = "?";
  90. header.Requestor = "?";
  91. header.Recipient = "?";
  92. header.Date = "?";
  93. Requestor requestor = new Requestor();
  94. requestor.UserID = "";
  95. requestor.Password = "";
  96.  
  97. header.Subject = requestor;
  98.  
  99. Payload payload = new Payload();
  100. GetVendorCustomerIn getVendorCustomer = new GetVendorCustomerIn();
  101. getVendorCustomer.IncludeGeneralInfo = true;
  102. getVendorCustomer.IncludeHeadquarters = true;
  103. getVendorCustomer.IncludePrenote_EFT = true;
  104. getVendorCustomer.IncludePrenote_EFTSpecified = true;
  105. getVendorCustomer.Vendor_Customer = "{our customer number}";
  106.  
  107. payload.GetVendorCustomerIn = getVendorCustomer;
  108.  
  109. AdvMessage advMessage = new AdvMessage();
  110. advMessage.Header = header;
  111. advMessage.Payload = payload;
  112.  
  113. GetVendorCustomer customer = new GetVendorCustomer();
  114. customer.AdvMessage = advMessage;
  115. getVendorCustomerRequest customerReq = new getVendorCustomerRequest();
  116. customerReq.getVendorCustomer = customer;
  117.  
  118. //VendorServicesClient wcfClient = new VendorServicesClient();
  119. //var s = wcfClient.State;
  120. //wcfClient.Open();
  121.  
  122. var wcfClient = new WebChannelFactory<VendorServicesChannel>(
  123. new Uri("{the target uri}"));
  124. //var s = wcfClient.State;
  125. //wcfClient.Open();
  126. wcfClient.Endpoint.EndpointBehaviors.Add(new AuthenticationHeaderBehavior("txtUser", "txtPass", wso2token));
  127.  
  128. //using (new OperationContextScope(wcfClient.InnerChannel))
  129. //{
  130. // WebProxy wproxy = new WebProxy(new Uri("our proxy server and port"), true);
  131. // wproxy.BypassProxyOnLocal = true;
  132. // wproxy.UseDefaultCredentials = true;
  133.  
  134. // WebRequest.DefaultWebProxy = wproxy;
  135.  
  136. // // Add a HTTP Header to an outgoing request
  137. // HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
  138. // requestMessage.Headers["Authorization"] = " Bearer " + wso2token;
  139.  
  140. // OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
  141.  
  142. // var result = wcfClient.getVendorCustomer(customer);
  143. //}
  144.  
  145. var proxy = wcfClient.CreateChannel();
  146. using ((IDisposable)proxy)
  147. using (OperationContextScope c = new OperationContextScope((IContextChannel)proxy))
  148. {
  149. //WebProxy wproxy = new WebProxy(new Uri("our proxy server and port"), true);
  150. //wproxy.BypassProxyOnLocal = true;
  151. //wproxy.UseDefaultCredentials = true;
  152. //WebRequest.DefaultWebProxy = wproxy;
  153. //Add a HTTP Header to an outgoing request
  154. //HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
  155. //requestMessage.Headers["Authorization"] = " Bearer " + wso2token;
  156.  
  157. //OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
  158.  
  159. var result = proxy.getVendorCustomer(customerReq);
  160. }
  161. }
  162. }
  163.  
  164. public class AuthenticationHeader : IClientMessageInspector
  165. {
  166. #region Implementation of IClientMessageInspector
  167.  
  168. string itsUser;
  169. string itsPass;
  170. string itsToken;
  171.  
  172. public AuthenticationHeader(string user, string pass, string token)
  173. {
  174. itsUser = user;
  175. itsPass = pass;
  176. itsToken = token;
  177. }
  178.  
  179. public object BeforeSendRequest(ref Message request,
  180. IClientChannel channel)
  181. {
  182. //HttpRequestMessageProperty hrmp = request.Properties["httpRequest"] as HttpRequestMessageProperty;
  183. //string encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(itsUser + ":" + itsPass));
  184. //hrmp.Headers.Add("Authorization", "Basic " + encoded);
  185. //return request;
  186.  
  187. //HttpRequestMessageProperty hrmp = request.Properties["httpRequest"] as HttpRequestMessageProperty;
  188. //hrmp.Headers.Add("Authorization", " Bearer " + itsToken);
  189.  
  190. //HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
  191. //requestMessage.Headers["Authorization"] = " Bearer " + itsToken;
  192.  
  193. //OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;
  194.  
  195. //return request;
  196.  
  197. WebProxy wproxy = new WebProxy(new Uri("our proxy server and port"), true);
  198. wproxy.BypassProxyOnLocal = true;
  199. wproxy.UseDefaultCredentials = true;
  200. WebRequest.DefaultWebProxy = wproxy;
  201.  
  202. //// Add a HTTP Header to an outgoing request
  203. HttpRequestMessageProperty hrmp = request.Properties["httpRequest"] as HttpRequestMessageProperty;
  204. hrmp.Headers["Authorization"] = " Bearer " + itsToken;
  205.  
  206. return request;
  207. }
  208.  
  209. public void AfterReceiveReply(ref Message reply, object correlationState)
  210. {
  211. //Console.WriteLine("Received the following reply: '{0}'", reply.ToString());
  212. }
  213. #endregion
  214. }
  215.  
  216. public class AuthenticationHeaderBehavior : IEndpointBehavior
  217. {
  218. #region Implementation of IEndpointBehavior
  219.  
  220. readonly string itsUser;
  221. readonly string itsPass;
  222. readonly string itsToken;
  223.  
  224. public AuthenticationHeaderBehavior(string user, string pass, string token)
  225. : base()
  226. {
  227. itsUser = user;
  228. itsPass = pass;
  229. itsToken = token;
  230. }
  231.  
  232. public void Validate(ServiceEndpoint endpoint) { }
  233.  
  234. public void AddBindingParameters(ServiceEndpoint endpoint,
  235. BindingParameterCollection bindingParameters) { }
  236.  
  237. public void ApplyDispatchBehavior(ServiceEndpoint endpoint,
  238. EndpointDispatcher endpointDispatcher) { }
  239.  
  240. public void ApplyClientBehavior(ServiceEndpoint endpoint,
  241. ClientRuntime clientRuntime)
  242. {
  243. clientRuntime.MessageInspectors.Add(new AuthenticationHeader(itsUser, itsPass, itsToken));
  244. }
  245.  
  246. #endregion
  247. }
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement