.NET 4.x WebRequest не отправляет сертификат - C#
Формулировка задачи:
Есть следующий код для работы с неким сервисом по api.
И вот в чём прикол. При запросе через curl сертификат отправляется.
Но при запросе через этот код, нет.
Есть какие идеи? уже пробовал юзать HttpClient. Результат идентичен.
Так же при работе с другими сервисами такой проблемы нет. Сертификаты передаются.
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; ServicePointManager.Expect100Continue = true; var request = (HttpWebRequest)WebRequest.Create(url); request.ClientCertificates.AddRange(Certificate);//X509Certificate2Collection считывается из p12 содержащим приватный и публичный ключ request.ContentType = "application/json"; request.Accept = "application/json"; request.Headers.Add("Accept-Encoding", "gzip,deflate"); request.Method = method.Method; request.Credentials = new NetworkCredential(UserName, Password); return request;
Решение задачи: «.NET 4.x WebRequest не отправляет сертификат»
textual
Листинг программы
System.Net Information: 0 : [20820] SecureChannel#41622463 - Сертификат относится к типу X509Certificate2 и содержит закрытый ключ. System.Net Information: 0 : [20820] AcquireCredentialsHandle(package = Microsoft Unified Security Protocol Provider, intent = Outbound, scc = System.Net.SecureCredential) System.Net Information: 0 : [20820] InitializeSecurityContext(credential = System.Net.SafeFreeCredential_SECURITY, context = System.Net Information: 0 : [19136] SecureChannel#41622463 - Пользователь признал удаленный сертификат действительным. System.Net Information: 0 : [19136] EndProcessAuthentication(протокол=Tls12, шифр=Aes256 256 разрядов, хэш=Sha384 0 разрядов, обмен ключами=44550 256 разрядов). .... System.Net.Sockets Verbose: 0 : [19136] Socket#33711845::BeginSend() System.Net.Sockets Verbose: 0 : [20820] Data from Socket#33711845::PostCompletion
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д