FaultContractAttribute.ProtectionLevel Özellik

Tanım

SOAP hatasının bağlamadan gerektirdiği koruma düzeyini belirtir.

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.

Açıklamalar

SOAP hatasını FaultDescription.ProtectionLevel gönderirken bağlamanın şifreleme, imzalama veya her ikisini birden ne derece şifrelemesi gerektiğini belirtmek için özelliğini kullanın. Sözleşmedeki güvenlik koruma düzeyi gereksinimlerini açıkça bir işlemin hatasının belirlemesi kesinlikle önerilir. Varsayılan koruma düzeyi , ProtectionLevel.Nonetanımladığınız SOAP hata iletisinin şifreleme veya dijital imza gerektirmediği anlamına gelir (ancak bağlamanız bunu yapacak şekilde yapılandırılmışsa bu desteği sağlayabilir). Hata iletisi hassas bilgiler taşıyorsa veya güvenlik sorunlarına yol açabiliyorsa, özelliğinin ProtectionLevel olarak ayarlanması ProtectionLevel.EncryptAndSignkesinlikle önerilir. Güvenlik sorunları hakkında daha fazla bilgi için bkz. Koruma Düzeyini Anlama.

Çalışma zamanındaki koruma davranışı, hiyerarşik bir yapıya sahip koruma düzeyi özelliklerin birleşimidir. En dıştaki değerin ayarlanması, daha dar bir kapsam için farklı bir değer açıkça ayarlanmadığı sürece tüm dar kapsamlar için varsayılan ayarı belirler. Bu durumda, dış değer, özel olarak ayarlanan hariç 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, hata iletileri de dahil olmak üzere bir işlem sözleşmesindeki tüm iletiler şifrelenir ve imzalanır. Bununla birlikte, bu işlemlerden OperationContractAttribute biri olarak ayarlandıysa ProtectionLevel.Sign, bu işlemin iletileri imzalı ancak sözleşmedeki diğer tüm iletiler şifrelenir ve imzalı olur (hata iletileri de dahil).

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 geçerli koruma düzeyi olur ProtectionLevel.EncryptAndSign. Bağlama güvenliği (gibi BasicHttpBinding) desteklemiyorsa, geçerli System.Net.Security.ProtectionLevel olan ProtectionLevel.None sözleşmenin tamamı içindir. Sonuç, uç nokta bağlamaya bağlı olarak, sözleşme tarafından belirtildiğinde bile istemcilerin farklı ileti veya aktarım düzeyi güvenlik koruması gerektirebileceğidir ProtectionLevel.None.

Şunlara uygulanır