tls create c# ssl httpwebrequest

create - using httpwebrequest c#



ConfiguraciĆ³n por valor de solicitud para ServicePointManager.SecurityProtocol (1)

Esta pregunta ya tiene una respuesta aquí:

En c # puedo establecer un valor estático para SSL3 o TLS, por ejemplo

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

O:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

Pero (creo) esto afectará a todos los objetos HttpWebRequest futuros en mi aplicación.

¿Hay una manera de establecer esto para un determinado HttpWebRequest o al menos para un URI determinado?

Tenga en cuenta que he visto esto:

Uri uri = new Uri(url); ServicePoint sp = ServicePointManager.FindServicePoint(uri);

Pero ServicePoint no tiene una propiedad SecurityProtocol.

En este momento estoy pensando que tendré que establecer la propiedad global estática antes de crear un nuevo HttpWebRequest.

Esto no se siente bien y también significa:

  • Tengo que asegurarme de que varios hilos no estén haciendo esto al mismo tiempo.
  • No estoy seguro de en qué punto se ha ''utilizado'' esta configuración (es decir, cuando llamo a webRequest.GetResponse () que se accede al ServicePointManager.SecurityProtocol y que está vinculado a ese URI).

Se dio cuenta de que esto ha sido cubierto aquí:

¿Cómo usar SSL3 en lugar de TLS en un HttpWebRequest particular?

Y aquí:

Establezca el SecurityProtocol (Ssl3 o TLS) en .net HttpWebRequest por solicitud

Confirmando mis miedos. Algunos usuarios parecen estar girando un dominio de aplicación separado para solucionar esto. Todavía creo que podría ser posible con un bloqueo de subprocesos si estaba bien definido en qué punto la configuración está vinculada a un objeto de solicitud web en particular.