Minor
4.7
NotPlanned
Starting with apps that target the .NET Framework 4.7, the default value of the xref:System.Net.ServicePointManager.SecurityProtocol?displayProperty=nameWithType property is xref:System.Net.SecurityProtocolType.SystemDefault?displayProperty=nameWithType. This change allows .NET Framework networking APIs based on SslStream (such as FTP, HTTPS, and SMTP) to inherit the default security protocols from the operating system instead of using hard-coded values defined by the .NET Framework. The default varies by operating system and any custom configuration performed by the system administrator. For information on the default SChannel protocol in each version of the Windows operating system, see Protocols in TLS/SSL (Schannel SSP).
For applications that target an earlier version of the .NET Framework, the default value of the xref:System.Net.ServicePointManager.SecurityProtocol?displayProperty=nameWithType property depends on the version of the .NET Framework targeted. See the Networking section of Retargeting Changes for Migration from .NET Framework 4.5.2 to 4.6 for more information.
- Quirked
- Build-time break
This change affects applications that target the .NET Framework 4.7 or later versions.
If you prefer to use a defined protocol rather than relying on the system default, you can explicitly set the value of the xref:System.Net.ServicePointManager.SecurityProtocol?displayProperty=nameWithType property.
If this change is undesirable, you can opt out of it by adding a configuration setting to the <runtime>
section of your application configuration file. The following example shows both the <runtime>
section and the Switch.System.Net.DontEnableSystemDefaultTlsVersions
opt-out switch:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Net.DontEnableSystemDefaultTlsVersions=true" />
</runtime>
P:System.Net.ServicePointManager.SecurityProtocol
Networking