FaultContractAttribute.ProtectionLevel Propriedade

Definição

Especifica o nível de proteção que a falha de SOAP exige da associação.Specifies the level of protection the SOAP fault requires from the binding.

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.One of the ProtectionLevel values. O padrão é None.The default is None.

Comentários

Use a FaultDescription.ProtectionLevel propriedade para especificar o grau para o qual a associação deve criptografar, assinar ou ambos ao enviar a falha de SOAP.Use the FaultDescription.ProtectionLevel property to specify the degree to which the binding must encrypt, sign, or both when sending the SOAP fault. É 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.It is strongly recommended that an operation's fault explicitly decide the security protection level requirements on the contract. 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 assinatura digital (embora sua associação possa fornecer esse suporte se estiver configurada para fazer isso).The default protection level is ProtectionLevel.None, meaning that the SOAP fault message you are defining does not require encryption or a digital signature (although your binding may provide this support if it is configured to do so). Se uma mensagem de falha tiver informações confidenciais ou puder causar problemas de segurança, é altamente recomendável que a ProtectionLevel propriedade seja definida como ProtectionLevel.EncryptAndSign .If a fault message carries information that is sensitive or can lead to security problems, it is strongly recommended that the ProtectionLevel property be set to ProtectionLevel.EncryptAndSign. Para obter mais informações sobre problemas de segurança, consulte noções básicas sobre o nível de proteção.For more about security issues, see Understanding Protection Level.

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.The protection behavior at runtime is the combination of the protection-level properties that have a hierarchical structure. 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.Setting the outermost value establishes the default setting for all narrower scopes unless a different value for a narrower scope is explicitly set. Nesse caso, o valor externo permanece o padrão para todos os escopos mais estreitos, com exceção do definido especificamente.In this case, the outer value remains the default for all narrower scopes with the exception of that specifically set.

Por exemplo, se ServiceContractAttribute.ProtectionLevel é definido como ProtectionLevel.EncryptAndSign e nenhum outro escopo mais estreito tem configurações de nível de proteção, todas as mensagens em um contrato de operação são criptografadas e assinadas, incluindo as mensagens de falha.For example, if ServiceContractAttribute.ProtectionLevel is set to ProtectionLevel.EncryptAndSign and no other narrower scopes have protection level settings, all messages in an operation contract are encrypted and signed, including fault messages. No entanto, se uma dessas operações tiver o OperationContractAttribute definido como ProtectionLevel.Sign , as mensagens para essa operação serão assinadas, mas todas as outras mensagens no contrato serão criptografadas e assinadas, incluindo as mensagens de falha.If, however, one of those operations has the OperationContractAttribute set to ProtectionLevel.Sign, then the messages for that operation are signed but all other messages in the contract are encrypted and signed, including fault messages.

Os escopos em que esses valores são definidos são:The scopes at which these values are set are:

ServiceContractAttribute.ProtectionLevel

OperationContractAttribute.ProtectionLevel

FaultContractAttribute.ProtectionLevel

MessageContractAttribute.ProtectionLevel

A MessageContractMemberAttribute.ProtectionLevel propriedade em System.ServiceModel.MessageHeaderAttribute .The MessageContractMemberAttribute.ProtectionLevel property on System.ServiceModel.MessageHeaderAttribute.

A MessageContractMemberAttribute.ProtectionLevel propriedade em System.ServiceModel.MessageBodyMemberAttribute .The MessageContractMemberAttribute.ProtectionLevel property on 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 de mensagem), o nível de proteção efetivo para todo o contrato é ProtectionLevel.EncryptAndSign .When there is no protection level explicitly specified on the contract and the underlying binding supports security (whether at the transport or message level), the effective protection level for the whole contract is ProtectionLevel.EncryptAndSign. Se a associação não oferecer suporte à segurança (como BasicHttpBinding ), o efetivo System.Net.Security.ProtectionLevel será ProtectionLevel.None para todo o contrato.If the binding does not support security (such as BasicHttpBinding), the effective System.Net.Security.ProtectionLevel is ProtectionLevel.None for the whole contract. O resultado é que, dependendo da Associação de ponto de extremidade, os clientes podem exigir uma proteção de segurança de nível de transporte ou mensagem diferente mesmo quando o contrato especifica ProtectionLevel.None .The result is that depending upon the endpoint binding, clients can require different message or transport level security protection even when the contract specifies ProtectionLevel.None.

Aplica-se a