ServiceContractAttribute.ProtectionLevel Propriedade

Definição

Especifica se a associação para o contrato deve oferecer suporte ao valor da propriedade ProtectionLevel.Specifies whether the binding for the contract must support the value of the ProtectionLevel property.

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.

Exceções

O valor não é um dos valores ProtectionLevel.The value is not one of the ProtectionLevel values.

Comentários

Use a ProtectionLevel propriedade para especificar o grau para o qual a associação de contrato requer criptografia, assinaturas digitais ou ambos para pontos de extremidade que exponham o contrato.Use the ProtectionLevel property to specify the degree to which the contract binding requires encryption, digital signatures, or both for endpoints that expose the contract. O valor definido aqui é o valor padrão para todas as mensagens de operação, incluindo falhas.The value set here is the default value for all operation messages including faults.

É importante lembrar que o comportamento de proteção em tempo de execução é a combinação dos valores de nível de proteção definidos nas propriedades a seguir.It is important to remember that the protection behavior at runtime is the combination of the protection-level values set on the following properties. Essas propriedades têm uma estrutura hierárquica.These properties 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.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. 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.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.

Para obter detalhes sobre os níveis de proteção e suas suposições e escopos, consulte noções básicassobre o nível de proteção.For details about protection levels and their assumptions and scopes, see Understanding Protection Level.

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