/
AstroJohn
/
MailRobot
Обзор
Документация
Войти
/
AstroJohn
/
MailRobot
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
WcfMailRobotService/UnsafeWebClient.cs
74 строки
2 KB
AstroJohn
1st commit
11 сен 2024, 13:31
11 сен 2024, 13:31
0f57dc5
Код
Авторство
О чём код?
using System; using System.Net; namespace MailRobot.WcfMailRobotService { public class UnSafeWebClient : WebClient { public UnSafeWebClient() { ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; //ServicePointManager.ServerCertificateValidationCallback += // delegate // ( // object sender, // X509Certificate cert, // X509Chain chain, // SslPolicyErrors sslPolicyErrors // ) // { // if (sslPolicyErrors == SslPolicyErrors.None) // return true; // // return cert.GetCertHashString() == "9817e78b0bdf6da716f5e771ec3ac99c09b641dc"; // }; CookieContainer = new CookieContainer(); } public UnSafeWebClient(CookieContainer container) { CookieContainer = container; } public CookieContainer CookieContainer { get; set; } protected override WebRequest GetWebRequest(Uri address) { var r = base.GetWebRequest(address); if (r is HttpWebRequest request) { request.CookieContainer = CookieContainer; } return r; } protected override WebResponse GetWebResponse(WebRequest request, IAsyncResult result) { var response = base.GetWebResponse(request, result); ReadCookies(response); return response; } protected override WebResponse GetWebResponse(WebRequest request) { var response = base.GetWebResponse(request); ReadCookies(response); return response; } private void ReadCookies(WebResponse r) { if (!(r is HttpWebResponse response)) return; var cookies = response.Cookies; CookieContainer.Add(cookies); } } }