2014-10-15 17 views
13

In C# sono in grado di impostare un valore statico per SSL3 o TLS, ad es.Impostazione per valore di richiesta per ServicePointManager.SecurityProtocol

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; 

Oppure:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 

Ma (credo) questo influenzerà tutta la futura HttpWebRequest oggetti nella mia applicazione.

C'è un modo per impostare questo per un determinato HttpWebRequest o almeno per un dato URI?

Nota Ho visto questo:

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

Ma ServicePoint non ha una proprietà SecurityProtocol.

Attualmente penso che sarà necessario impostare la proprietà statica globale prima di creare una nuova HttpWebRequest.

Questo non mi sembra giusto e significa anche:

  • devo per assicurarsi che le discussioni più non stanno facendo questo allo stesso tempo.
  • Non sono sicuro in quale momento questa impostazione è stata 'utilizzata' (vale a dire quando chiamo webRequest.GetResponse() a cui si accede e che è associato a tale URI ServicePointManager.SecurityProtocol?).

risposta

2

reso conto questo è stato coperto qui:

How to use SSL3 instead of TLS in a particular HttpWebRequest?

E qui:

Set the SecurityProtocol (Ssl3 or TLS) on the .net HttpWebRequest per request

conferma i miei timori. Alcuni utenti sembrano girare un dominio app separato per ovviare a questo problema. Continuo a pensare che potrebbe essere possibile con alcuni thread lock se fosse ben definito a che punto l'impostazione è legata a un particolare oggetto di richiesta web.

Problemi correlati