Ich versuche einen Weg zu finden, die Zertifikatsprüfung zu ignorieren, wenn eine HTTP-Ressource angefordert wird. Bisher habe ich einen hilfreichen Artikel im Internet gefunden.
Aber ich habe immer noch ein Problem. Bitte überprüfen Sie meinen Code. Ich verstehe einfach nicht, was der Code ServicePointManager.ServerCertificateValidationCallback
bedeutet.
Wann wird diese Delegatmethode aufgerufen? Und noch eine Frage, an welcher Stelle soll ich diesen Code schreiben? Vor ServicePointManager.ServerCertificateValidationCallback
oder vor der Ausführung 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;
}
}