title: How to ignore the certificate check when ssl
body: <p>I am trying find a way to ignore the certificate check when request a Https resource, so far, I found some helpful article in internet. </p>
  
  <p>But I still have some problem. Please review my code. I just don't understand what does the code <code>ServicePointManager.ServerCertificateValidationCallback</code> mean.</p>
  
  <p>When will this delegate method be called? And one more question, in which place should I write this code? Before <code>ServicePointManager.ServerCertificateValidationCallback</code> execute or before <code>Stream stream = request.GetRequestStream()</code>? </p>
  
  <pre><code>public HttpWebRequest GetRequest()
  {
      CookieContainer cookieContainer = new CookieContainer();
  
      // Create a request to the server
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_remoteUrl);
  
      #region Set request parameters
  
      request.Method = _context.Request.HttpMethod;
      request.UserAgent = _context.Request.UserAgent;
      request.KeepAlive = true;
      request.CookieContainer = cookieContainer;
      request.PreAuthenticate = true;
      request.AllowAutoRedirect = false;
  
      #endregion
  
      // For POST, write the post data extracted from the incoming request
      if (request.Method == "POST")
      {
          Stream clientStream = _context.Request.InputStream;
          request.ContentType = _context.Request.ContentType;
          request.ContentLength = clientStream.Length;
  
          ServicePointManager.ServerCertificateValidationCallback = delegate(
              Object obj, X509Certificate certificate, X509Chain chain, 
              SslPolicyErrors errors)
              {
                  return (true);
              };
  
              Stream stream = request.GetRequestStream();
  
              ....
          }
  
          ....
  
          return request;
      }
  }   
  </code></pre>