c# - servicepointmanager - ¿Es posible enviar HttpWebRequest usando TLS1.2 en.NET 4.0 framework
using tls 1.2 c# (3)
Mi aplicación se conecta al servidor de Experian y Experian pronto dejará de admitir TLS 1.0
y TLS 1.1
. Toda la conectividad que usa HTTPS
debe usar TLS Version 1.2
.
Quiero investigar un poco sobre ese tema y ver el envío de HttpWebRequest
usando TLS 1.2
en el .NET 4.0 framework
trabajo de .NET 4.0 framework
Si no es así, probablemente necesite crear un servicio webservice
en .NET 4.5
y llamar a sus métodos, si lo hace, no tengo que hacer nada.
¿Alguien ya ha enfrentado ese problema?
Desafortunadamente no, no puedes hacer esto. Tls12 no se agregó hasta .netfx 4.5 (ver la documentación ). Tenga en cuenta que esto también requiere que Windows Server 2008 R2 + o Windows 7+ se ejecuten correctamente (observe la sección Se aplica A en Introducción a TLS ).
Sí, lo admite pero debe establecer explícitamente la versión de TLS en ServicePointManager
. Simplemente haga que este código se ejecute en cualquier momento (en el mismo dominio de la aplicación) antes de realizar la llamada a Experian:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Tuve que lidiar con el mismo problema, al integrar PayPal en una aplicación heredada, y encontré la siguiente solución para .NET 4.0 que parece ser la solución:
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
ServicePointManager.DefaultConnectionLimit = 9999;
Básicamente, la solución consiste en asignar directamente el puerto para TLS 1.2.
Todo el crédito va al comentarista en CodeProject .