Estoy tratando de encontrar una manera de ignorar la verificación del certificado cuando solicito un recurso Https, hasta ahora, encontré algún artículo útil en Internet.
Pero todavía tengo algún problema. Por favor revise mi código. Simplemente no entiendo qué significa el código ServicePointManager.ServerCertificateValidationCallback
.
¿Cuándo se llamará a este método delegado? Y una pregunta más, ¿en qué lugar debo escribir este código? Antes de ServicePointManager.ServerCertificateValidationCallback
ejecutar o antes Stream stream = request.GetRequestStream()
?
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;
}
}