FaultContractAttribute.ProtectionLevel 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.
Menentukan tingkat perlindungan yang diperlukan kesalahan SOAP dari pengikatan.
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
Nilai Properti
Salah ProtectionLevel satu nilai. Defaultnya adalah None.
Keterangan
FaultDescription.ProtectionLevel Gunakan properti untuk menentukan tingkat pengikatan harus mengenkripsi, menandatangani, atau keduanya saat mengirim kesalahan SOAP. Sangat disarankan agar kesalahan operasi secara eksplisit memutuskan persyaratan tingkat perlindungan keamanan pada kontrak. Tingkat perlindungan default adalah ProtectionLevel.None, yang berarti bahwa pesan kesalahan SOAP yang Anda tentukan tidak memerlukan enkripsi atau tanda tangan digital (meskipun pengikatan Anda dapat memberikan dukungan ini jika dikonfigurasi untuk melakukannya). Jika pesan kesalahan membawa informasi yang sensitif atau dapat menyebabkan masalah keamanan, sangat disarankan agar ProtectionLevel properti diatur ke ProtectionLevel.EncryptAndSign. Untuk informasi selengkapnya tentang masalah keamanan, lihat Memahami Tingkat Perlindungan.
Perilaku perlindungan saat runtime adalah kombinasi properti tingkat perlindungan yang memiliki struktur hierarkis. Mengatur nilai terluar menetapkan pengaturan default untuk semua cakupan yang lebih sempit kecuali nilai yang berbeda untuk cakupan yang lebih sempit diatur secara eksplisit. Dalam hal ini, nilai luar tetap default untuk semua cakupan yang lebih sempit dengan pengecualian yang secara khusus ditetapkan.
Misalnya, jika ServiceContractAttribute.ProtectionLevel diatur ke ProtectionLevel.EncryptAndSign dan tidak ada cakupan sempit lainnya yang memiliki pengaturan tingkat perlindungan, semua pesan dalam kontrak operasi dienkripsi dan ditandatangani, termasuk pesan kesalahan. Namun, jika salah satu operasi tersebut OperationContractAttribute telah diatur ke ProtectionLevel.Sign, maka pesan untuk operasi tersebut ditandatangani tetapi semua pesan lain dalam kontrak dienkripsi dan ditandatangani, termasuk pesan kesalahan.
Cakupan di mana nilai-nilai ini diatur adalah:
ServiceContractAttribute.ProtectionLevel
OperationContractAttribute.ProtectionLevel
FaultContractAttribute.ProtectionLevel
MessageContractAttribute.ProtectionLevel
Properti MessageContractMemberAttribute.ProtectionLevel pada System.ServiceModel.MessageHeaderAttribute.
Properti MessageContractMemberAttribute.ProtectionLevel pada System.ServiceModel.MessageBodyMemberAttribute.
Ketika tidak ada tingkat perlindungan yang secara eksplisit ditentukan pada kontrak dan pengikatan yang mendasar mendukung keamanan (baik di tingkat transportasi atau pesan), tingkat perlindungan efektif untuk seluruh kontrak adalah ProtectionLevel.EncryptAndSign. Jika pengikatan tidak mendukung keamanan (seperti BasicHttpBinding), efektivitasnya System.Net.Security.ProtectionLevel adalah ProtectionLevel.None untuk seluruh kontrak. Hasilnya adalah bahwa tergantung pada pengikatan titik akhir, klien dapat memerlukan pesan atau perlindungan keamanan tingkat transportasi yang berbeda bahkan ketika kontrak menentukan ProtectionLevel.None.