Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 9th, 2012  |  syntax: None  |  size: 1.12 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Exception while making SSL connection from within Windows Service
  2. class MyWebClient : WebClient
  3. {
  4.     public X509Certificate cert { set; get; }
  5.     protected override WebRequest GetWebRequest(Uri address)
  6.     {
  7.         HttpWebRequest req = (HttpWebRequest)base.GetWebRequest(address);
  8.         req.ClientCertificates.Clear();
  9.         req.ClientCertificates.Add(cert);
  10.         return req;
  11.     }
  12. }
  13.        
  14. try {
  15. //...
  16. string qry = "Some xml query...";
  17.     System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object sender,
  18.     X509Certificate certificate,
  19.     X509Chain chain,
  20.     SslPolicyErrors sslPolicyErrors) { return true; };
  21.  
  22. X509Certificate cert = X509Certificate.CreateFromCertFile(appPath + @"datacert.der");
  23. MyWebClient cl = new MyWebClient();
  24. cl.cert = cert;
  25. string xmlReq = qry;
  26. cl.Headers[HttpRequestHeader.ContentType] = "text/xml";
  27. var data = Encoding.UTF8.GetBytes(xmlReq);
  28. byte[] res = cl.UploadData(apiUrl, data);
  29. cl.Dispose();
  30.  
  31. string result = Encoding.UTF8.GetString(res);
  32. } catch (Exception ex) {
  33. //...
  34. }
  35. //...
  36.        
  37. X509Certificate cert = X509Certificate.CreateFromCertFile(appPath + @"datacert.der");