Symptomen
Stel dat u een upgrade hebt uitgevoerd naar Microsoft .NET Framework 4.6 op uw computer. Wanneer u een toepassing die gebruikmaakt van SSL 3.0 met ServicePointManager of SslStream API's verbinding maken met een server, mislukt de verbinding.
Oorzaak
Dit probleem treedt op omdat de standaardset met SSL/TLS-protocollen die wordt gebruikt door ServicePointManager en SslStream is gewijzigd.
Oude waarde: Ssl 3.0 | TLS 1.0 | TLS 1.1
Nieuwe waarde: Tls 1.0 | TLS 1.1 | TLS 1.2
Tijdelijke oplossing
U kunt dit probleem omzeilen door de server Tls 1.0, 1.1 Tls of Tls 1.2 bijwerken omdat SSL 3.0 onbeveiligde en kwetsbaar voor aanvallen zoals cocktailjurk maar is gebleken.
Opmerking Als u de server niet kunt bijwerken, gebruikt u AppContext klasse niet mogen deze functie. Gebruik hiervoor een van de volgende methoden:
-
Via programmering: Moet het eerste wat dat de toepassing wel, aangezien ServicePointManager slechts eenmaal wordt geïnitialiseerd. In het volgende voorbeeld gebruiken in uw toepassing:
private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
AppContext.SetSwitch(DisableCachingName, true);
AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true); -
Met behulp van het bestand AppConfig voor uw toepassing: Voeg de volgende regel aan het bestand Appconfig:
< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >
Zie voor meer informatie over bekende problemen in de .NET Framework 4.6 bekende problemen voor het .NET Framework 4.6.
Meer informatie
Zie voor meer informatie over de wijzigingen bijhouden van versies en het effect in het .NET Framework 4.6, Compatibiliteit van toepassingen in het .NET Framework 4.6.
Opmerkingen
-
De nieuwe configuratie is alleen van toepassing als de aanvraag is gericht op het .NET Framework 4.6. .NET Framework 4.5.2 en eerdere versies wordt niet worden beïnvloed, zelfs als ze worden uitgevoerd in een omgeving met .NET Framework 4.6.
-
Een lijst waarin dit probleem optreedt op het hoogste niveau API's:
-
HttpClient, HttpWebRequest
-
FtpClient
-
SmtpClient
-
SslStream
-
-
SCH_USE_STRONG_CRYPTO Deze vlag zal automatisch worden gebruikt in het .NET Framework 4.6 en gedrag beïnvloedt door het verwijderen van onveilige cryptografische en hash-algoritmen. Voor alle platforms van besturingssysteem wordt eerder dan Windows 10 het RC4 -algoritme verwijderd uit gebruik. Verwijderd uit Windows 10, de volgende aanvullende onveilige algoritmen: DES, NULL, EXPORTEREN en MD5