Impossibile connettersi a un server utilizzando il ServicePointManager o SslStream APIs dopo l'aggiornamento per la 4.6 di.NET Framework

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 3069494
Sintomi
Si supponga che siano stati aggiornati per Microsoft.NET Framework 4.6 nel computer in uso. Quando si utilizza un'applicazione che utilizza SSL 3.0 e ServicePointManager o SslStream API per la connessione a un server, la connessione non riesce.
Cause
Questo problema si verifica perché il set predefinito di protocolli SSL/TLS utilizzato da ServicePointManager e SslStream è stato modificato.

Valore precedente: Ssl 3.0 | TLS 1.0 | TLS 1.1

Nuovo valore: Tls 1.0 | TLS 1.1 | TLS 1.2

Workaround
Per ovviare a questo problema, aggiornare il server Tls 1.0, 1.1 Tls o Tls 1.2 SSL 3.0 ha dimostrato di essere vulnerabili ad attacchi come POODLE e non protette.

Nota Se non è possibile aggiornare il server, utilizzare AppContext classe di disattivare questa funzionalità. A tale scopo, utilizzare uno dei seguenti metodi:
  • A livello di codice: Deve essere la prima cosa che l'applicazione esegue quantoServicePointManagerviene inizializzato una sola volta. Nell'applicazione, utilizzare l'esempio di codice riportato di seguito:
    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";        AppContext.SetSwitch(DisableCachingName, true);        AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • Utilizzando il file /appConfig per l'applicazione: aggiungere la seguente riga al file /appConfig:
    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"></AppContextSwitchOverrides>


Per ulteriori informazioni sui problemi noti nel 4.6 di.NET Framework, vedere Problemi noti per la 4.6 di.NET Framework.
Informazioni
Per ulteriori informazioni sulle modifiche di controllo delle versioni del prodotto e impatto nel 4.6 di.NET Framework, vedere Compatibilità delle applicazioni nel.NET Framework 4.6.

Note
  • La nuova configurazione verrà applicata solo quando l'applicazione è destinata la 4.6 di.NET Framework. Il.NET Framework 4.5.2 e versionswill precedenti invariata anche se eseguiti in un ambiente.NET Framework 4.6.
  • Un elenco di API di primo livello interessato:
    • HttpClient, HttpWebRequest
    • FtpClient
    • SmtpClient
    • SslStream
  • SCH_USE_STRONG_CRYPTO Questo flag verrà automaticamente da utilizzare nei 4.6 di.NET Framework e influisce sul comportamento rimuovendo gli algoritmi di crittografico e hash non sicuri. Tutte le piattaforme del sistema operativo precedente a Windows 10, l'algoritmoRC4 verrà rimossa dall'utilizzo. Da 10 di Windows, verranno rimossi i seguenti algoritmi non sicuri:DES, NULL, ESPORTARE e MD5

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 3069494 - Ultima revisione: 07/22/2015 18:17:00 - Revisione: 1.0

Microsoft .NET Framework 4.6

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3069494 KbMtit
Feedback