Compartilhar via


FaultContractAttribute.ProtectionLevel Propriedade

Definição

Especifica o nível de proteção que a falha de SOAP exige da associaçã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 da propriedade

ProtectionLevel

Um dos valores de ProtectionLevel. O padrão é None.

Comentários

Use a FaultDescription.ProtectionLevel propriedade para especificar o grau em que a associação deve criptografar, assinar ou ambos ao enviar a falha SOAP. É altamente recomendável que a falha de uma operação decida explicitamente os requisitos de nível de proteção de segurança no contrato. O nível de proteção padrão é ProtectionLevel.None, o que significa que a mensagem de falha SOAP que você está definindo não requer criptografia ou uma assinatura digital (embora sua associação possa fornecer esse suporte se ela estiver configurada para fazê-lo). Se uma mensagem de falha levar informações confidenciais ou que podem levar a problemas de segurança, é altamente recomendável que a ProtectionLevel propriedade seja definida como ProtectionLevel.EncryptAndSign. Para obter mais informações sobre problemas de segurança, consulte Noções básicas sobre o nível de proteção.

O comportamento de proteção em runtime é 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 configuração padrão para todos os escopos mais estreitos, a menos que um valor diferente para um escopo mais estreito seja definido explicitamente. Nesse caso, o valor externo continua sendo o padrão para todos os escopos mais estreitos, com exceção desse conjunto específico.

Por exemplo, se ServiceContractAttribute.ProtectionLevel estiver definido ProtectionLevel.EncryptAndSign como e nenhum outro escopo mais estreito tiver configurações de nível de proteção, todas as mensagens em um contrato de operação serão criptografadas e assinadas, incluindo mensagens de falha. Se, no entanto, uma dessas operações tiver o OperationContractAttribute conjunto definido, ProtectionLevel.Signas mensagens para essa operação serão assinadas, mas todas as outras mensagens no contrato serão criptografadas e assinadas, incluindo mensagens de falha.

Os escopos nos quais esses 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 há nenhum nível de proteção explicitamente especificado no contrato e a associação subjacente dá suporte à segurança (seja no nível de transporte ou mensagem), o nível de proteção efetivo para todo o contrato é ProtectionLevel.EncryptAndSign. Se a associação não der suporte à segurança (como BasicHttpBinding), a eficácia System.Net.Security.ProtectionLevel será ProtectionLevel.None para todo o contrato. O resultado é que, dependendo da associação de ponto de extremidade, os clientes podem exigir proteção de segurança de nível de transporte ou mensagem diferente, mesmo quando o contrato especifica ProtectionLevel.None.

Aplica-se a