ServicePointManager.SecurityProtocol Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Nesne tarafından yönetilen nesneler tarafından kullanılan güvenlik protokollerini ServicePointServicePointManager alır veya ayarlar.
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
Özellik Değeri
Numaralandırmada SecurityProtocolType tanımlanan değerlerden biri.
Özel durumlar
Özelliği ayarlamak için belirtilen değer geçerli SecurityProtocolType bir numaralandırma değeri değil.
Açıklamalar
Bu özellik, yeni bağlantılar için kullanılacak Güvenli Yuva Katmanı (SSL) veya Aktarım Katmanı Güvenliği (TLS) protokolünün sürümünü seçer; mevcut bağlantılar değiştirilmez.
.NET Framework 4.7'den başlayarak, bu özelliğin varsayılan değeri şeklindedir SecurityProtocolType.SystemDefault. Bu, tabanlı .NET Framework ağ API'lerinin SslStream (FTP, HTTP ve SMTP gibi) işletim sisteminden veya sistem yöneticisi tarafından gerçekleştirilen özel yapılandırmalardan varsayılan güvenlik protokollerini devralmasını sağlar. Windows işletim sisteminin her sürümünde varsayılan olarak hangi SSL/TLS protokollerinin etkinleştirildiği hakkında bilgi için bkz. TLS/SSL'de Protokoller (Schannel SSP).
.NET Framework 4.6.2 aracılığıyla .NET Framework sürümleri için bu özellik için varsayılan değer listelenmez. Güvenlik ortamı sürekli değişir ve bilinen zayıflıkları önlemek için zaman içinde varsayılan protokoller ve koruma düzeyleri değiştirilir. Varsayılanlar, tek tek makine yapılandırmasına, yüklü yazılımlara ve uygulanan düzeltme eklerine bağlı olarak değişir.
Kodunuz hiçbir zaman örtük olarak belirli bir koruma düzeyinin kullanılmasına veya belirli bir güvenlik düzeyinin varsayılan olarak kullanıldığı varsayımlarına bağlı olmamalıdır. Uygulamanız belirli bir güvenlik düzeyinin kullanımına bağlıysa, bu düzeyi açıkça belirtmeniz ve ardından kurulan bağlantıda gerçekten kullanımda olduğundan emin olmanız gerekir. Ayrıca kodunuz, protokollerin desteklendiği değişiklikler karşısında sağlam olacak şekilde tasarlanmalıdır. Bu tür değişiklikler, yeni ortaya çıkan tehditleri azaltmak için genellikle çok az önceden bildirimle yapılır.
.NET Framework 4.6, bağlantılar için güvenli olmayan şifreleme ve karma algoritmalarını engelleyen yeni bir güvenlik özelliği içerir. HTTPClient, HttpWebRequest, FTPClient, SmtpClient, SslStream gibi API'ler aracılığıyla TLS/SSL kullanan ve .NET Framework 4.6'yı hedefleyen uygulamalar varsayılan olarak daha güvenli bir davranış elde eder.
Geliştiriciler, mevcut SSL3 hizmetleriyle veya RC4 hizmetleriyle TLS ile birlikte çalışabilirliği sürdürmek için bu davranışı geri çevirmek isteyebilir. Bu makalede , yeni davranışın devre dışı bırakılması için kodunuzun nasıl değiştirileceği açıklanır.