OperationContractAttribute.ProtectionLevel Ö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.
bir işlemin iletilerinin şifrelenmesini, imzalanması veya her ikisini birden içermesi gerektiğini belirten bir değer alır veya ayarlar.
public:
property System::Net::Security::ProtectionLevel ProtectionLevel { System::Net::Security::ProtectionLevel get(); void set(System::Net::Security::ProtectionLevel value); };
public System.Net.Security.ProtectionLevel ProtectionLevel { get; set; }
member this.ProtectionLevel : System.Net.Security.ProtectionLevel with get, set
Public Property ProtectionLevel As ProtectionLevel
Özellik Değeri
Değerlerden ProtectionLevel biri. Varsayılan değer: None.
Özel durumlar
Değer değerlerden ProtectionLevel biri değildir.
Açıklamalar
ProtectionLevel bir işlemin iletilerinin şifrelenip şifrelenmediğini, imzalanıp imzalanmayacağını veya her ikisinin de şifrelenip şifrelenmediğini denetlemek için özelliğini kullanın. Burada ayarlanan değer, daha dar bir kapsam bu değeri geçersiz kılmadığı sürece bu işlem için belirtilen tüm iletiler için varsayılan değerdir.
Çalışma zamanındaki koruma davranışının, aşağıdaki özelliklerde ayarlanan koruma düzeyi değerlerin birleşimi olduğunu unutmayın. Bu özellikler hiyerarşik bir yapıya sahiptir. En dıştaki değerin ayarlanması, daha dar bir kapsam için farklı bir değer açıkça ayarlanmadığı sürece tüm daha dar kapsamlar için varsayılan ayarı belirler. Bu durumda dış değer, özel olarak ayarlanmış özel durum dışında tüm dar kapsamlar için varsayılan değer olarak kalır.
Örneğin, olarak ayarlanırsa ProtectionLevel.EncryptAndSign ve diğer dar kapsamların koruma düzeyi ayarları yoksaServiceContractAttribute.ProtectionLevel, bir işlem sözleşmesindeki tüm iletiler şifrelenir ve imzalanır. Ancak, bu işlemlerden ProtectionLevel biri olarak ayarlandıysa ProtectionLevel.Sign, bu işlemin iletileri imzalanmış ancak sözleşmedeki diğer tüm iletiler şifrelenir ve imzalanmış olur.
Koruma düzeyleri ve bunların varsayımları ve kapsamları hakkında ayrıntılı bilgi için bkz. Koruma Düzeyini Anlama.
Bu değerlerin ayarlandığı kapsamlar şunlardır:
ServiceContractAttribute.ProtectionLevel
OperationContractAttribute.ProtectionLevel
FaultContractAttribute.ProtectionLevel
MessageContractAttribute.ProtectionLevel
MessageContractMemberAttribute.ProtectionLevel üzerindeki System.ServiceModel.MessageHeaderAttributeözelliği.
MessageContractMemberAttribute.ProtectionLevel üzerindeki System.ServiceModel.MessageBodyMemberAttributeözelliği.
Sözleşmede açıkça belirtilen bir koruma düzeyi olmadığında ve temel bağlama güvenliği (aktarım veya ileti düzeyinde) desteklediğinde, sözleşmenin tamamı için etkili koruma düzeyi olur ProtectionLevel.EncryptAndSign. Bağlama güvenliği (örneğin BasicHttpBinding) System.Net.Security.ProtectionLevel desteklemiyorsa, geçerli olan ProtectionLevel.None sözleşmenin tamamı içindir. Sonuç olarak uç nokta bağlamaya bağlı olarak, anlaşma belirtse ProtectionLevel.Nonebile istemcilerin farklı ileti veya aktarım düzeyi güvenlik koruması gerektirebilir.