ServicePointManager.SecurityProtocol Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur protokol keamanan yang digunakan oleh ServicePoint objek yang dikelola oleh ServicePointManager objek .
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
Nilai Properti
Salah satu nilai yang ditentukan dalam SecurityProtocolType enumerasi.
Pengecualian
Nilai yang ditentukan untuk mengatur properti bukan nilai enumerasi yang valid SecurityProtocolType .
Keterangan
Properti ini memilih versi protokol Secure Sockets Layer (SSL) atau Transport Layer Security (TLS) yang akan digunakan untuk koneksi baru; koneksi yang ada tidak diubah.
Dimulai dengan .NET Framework 4.7, nilai default properti ini adalah SecurityProtocolType.SystemDefault. Ini memungkinkan API jaringan .NET Framework berdasarkan SslStream (seperti FTP, HTTP, dan SMTP) untuk mewarisi protokol keamanan default dari sistem operasi atau dari konfigurasi kustom apa pun yang dilakukan oleh administrator sistem. Untuk informasi tentang protokol SSL/TLS mana yang diaktifkan secara default pada setiap versi sistem operasi Windows, lihat Protokol di TLS/SSL (Schannel SSP).
Untuk versi .NET Framework melalui .NET Framework 4.6.2, tidak ada nilai default yang tercantum untuk properti ini. Lanskap keamanan berubah terus-menerus, dan protokol default dan tingkat perlindungan diubah dari waktu ke waktu untuk menghindari kelemahan yang diketahui. Default bervariasi tergantung pada konfigurasi komputer individual, perangkat lunak yang diinstal, dan patch yang diterapkan.
Kode Anda tidak boleh secara implisit bergantung pada penggunaan tingkat perlindungan tertentu, atau pada asumsi bahwa tingkat keamanan tertentu digunakan secara default. Jika aplikasi Anda bergantung pada penggunaan tingkat keamanan tertentu, Anda harus secara eksplisit menentukan tingkat tersebut lalu memeriksa untuk memastikan bahwa aplikasi tersebut benar-benar digunakan pada koneksi yang dibuat. Selanjutnya, kode Anda harus dirancang agar kuat dalam menghadapi perubahan protokol mana yang didukung, karena perubahan tersebut sering dilakukan dengan sedikit pemberitahuan sebelumnya untuk mengurangi ancaman yang muncul.
.NET Framework 4.6 menyertakan fitur keamanan baru yang memblokir cipher dan algoritma hashing yang tidak aman untuk koneksi. Aplikasi yang menggunakan TLS/SSL melalui API seperti HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream, dll. dan menargetkan .NET Framework 4.6 mendapatkan perilaku yang lebih aman secara default.
Pengembang mungkin ingin menolak perilaku ini untuk menjaga interoperabilitas dengan layanan SSL3 yang ada ATAU layanan TLS w/ RC4. Artikel ini menjelaskan cara mengubah kode Anda sehingga perilaku baru dinonaktifkan.