FaultContractAttribute.ProtectionLevel Propriedade

Definição

Especifica o nível de proteção que a falha SOAP requer da ligação.

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

Valor de Propriedade

Um dos ProtectionLevel valores. A predefinição é None.

Observações

Use a FaultDescription.ProtectionLevel propriedade para especificar o grau em que a ligação deve encriptar, assinar ou ambos ao enviar a falha SOAP. Recomenda-se fortemente que a culpa da operação decida explicitamente os requisitos de nível de proteção de segurança no contrato. O nível de proteção predefinido é ProtectionLevel.None, o que significa que a mensagem de falha SOAP que está a definir não requer encriptação nem assinatura digital (embora a sua ligação possa fornecer este suporte se estiver configurada para tal). Se uma mensagem de falha transportar informação sensível ou que possa causar problemas de segurança, recomenda-se fortemente que a ProtectionLevel propriedade seja definida para ProtectionLevel.EncryptAndSign. Para mais informações sobre questões de segurança, consulte Compreender o Nível de Proteção.

O comportamento de proteção em tempo de execução é a combinação das propriedades de nível de proteção que têm uma estrutura hierárquica. Definir o valor mais externo estabelece a definição padrão para todos os escopos mais estreitos, a menos que um valor diferente para um âmbito mais restrito esteja explicitamente definido. Neste caso, o valor exterior mantém-se como padrão para todos os escopos mais restritos, com exceção daquele especificamente definido.

Por exemplo, se ServiceContractAttribute.ProtectionLevel estiver definido como ProtectionLevel.EncryptAndSign e nenhum outro âmbito mais restrito tiver definições de nível de proteção, todas as mensagens de um contrato operacional são encriptadas e assinadas, incluindo as mensagens de falha. Se, no entanto, uma dessas operações tiver OperationContractAttribute o valor definido para ProtectionLevel.Sign, então as mensagens dessa operação são assinadas, mas todas as outras mensagens do contrato são encriptadas e assinadas, incluindo as mensagens de falha.

Os âmbimos em que estes valores são definidos são:

ServiceContractAttribute.ProtectionLevel

OperationContractAttribute.ProtectionLevel

FaultContractAttribute.ProtectionLevel

MessageContractAttribute.ProtectionLevel

A MessageContractMemberAttribute.ProtectionLevel propriedade em System.ServiceModel.MessageHeaderAttribute.

A MessageContractMemberAttribute.ProtectionLevel propriedade em System.ServiceModel.MessageBodyMemberAttribute.

Quando não existe um nível de proteção explicitamente especificado no contrato e a vinculação subjacente suporta a segurança (seja ao nível de transporte ou de mensagem), o nível de proteção efetivo para todo o contrato é ProtectionLevel.EncryptAndSign. Se a vinculação não suportar garantia (como BasicHttpBinding), a efetiva System.Net.Security.ProtectionLevel é ProtectionLevel.None para todo o contrato. O resultado é que, dependendo da ligação ao endpoint, os clientes podem exigir proteção de segurança a nível de mensagem ou transporte, mesmo quando o contrato especifica ProtectionLevel.None.

Aplica-se a