ServicePointManager.SecurityProtocol 屬性

定義

取得或設定由 ServicePointManager 物件管理的 ServicePoint 物件所使用的安全性通訊協定。

public:
 static property System::Net::SecurityProtocolType SecurityProtocol { System::Net::SecurityProtocolType get(); void set(System::Net::SecurityProtocolType value); };
public static System.Net.SecurityProtocolType SecurityProtocol { get; set; }
static member SecurityProtocol : System.Net.SecurityProtocolType with get, set
Public Shared Property SecurityProtocol As SecurityProtocolType

屬性值

SecurityProtocolType 列舉型別中定義的一個值。

例外狀況

指定用來設定屬性的值不是一個有效的 SecurityProtocolType 列舉值。

備註

此屬性會選取要用於新連線的安全通訊端層 (SSL) 或傳輸層安全性 (TLS) 通訊協定的版本;現有的連線不會變更。

從 .NET Framework 4.7 開始,此屬性的預設值為 SecurityProtocolType.SystemDefault 。 這允許根據 SslStream FTP、HTTP 和 SMTP) 等 (來.NET Framework網路 API,從作業系統或系統管理員執行的任何自訂群組態繼承預設安全性通訊協定。 如需每個 Windows 作業系統版本預設啟用哪些 SSL/TLS 通訊協定的資訊,請參閱 TLS/SSL (SSP 中的 通訊協定) 。

對於透過 .NET Framework 4.6.2 的 .NET Framework 版本,此屬性不會列出任何預設值。 安全性環境會不斷變更,而預設通訊協定和保護層級會隨著時間而變更,以避免已知的弱點。 預設值會根據個別電腦設定、已安裝的軟體和套用的修補程式而有所不同。

您的程式碼絕對不應該隱含地相依于使用特定保護層級,或假設預設會使用指定的安全性層級。 如果您的應用程式需要使用特定的安全性層級,您必須明確地指定層級,並確定它實際上已在建立的連線中使用。 此外,您的程式碼應該設計為在支援通訊協定的變更時保持強固,因為這類變更通常不會事先通知,以減輕新興威脅。

.NET Framework 4.6 包含新的安全性功能,可封鎖連線不安全的加密和雜湊演算法。 透過 HTTPClient、HttpWebRequest、FTPClient、SmtpClient、SslStream 等 API 使用 TLS/SSL 的應用程式,並且預設會取得更安全的行為.NET Framework 4.6。

開發人員可能會想要退出此行為,以維持其現有 SSL3 服務或 TLS w/ RC4 服務的互通性。 本文 說明如何修改程式碼,以便停用新的行為。

適用於

另請參閱