OperationContractAttribute.ProtectionLevel Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que especifica se as mensagens de uma operação devem ser criptografadas, assinadas ou ambos.
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
Um dos valores de ProtectionLevel. O padrão é None.
Exceções
O valor não é um dos valores ProtectionLevel.
Comentários
Use a ProtectionLevel propriedade para controlar se as mensagens de uma operação devem ser criptografadas, assinadas ou ambas. O valor definido aqui é o valor padrão para todas as mensagens especificadas para esta operação, a menos que um escopo mais estreito substitua esse valor.
É importante lembrar que o comportamento de proteção em runtime é a combinação dos valores de nível de proteção definidos nas propriedades a seguir. Essas propriedades 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 permanece 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. Se, no entanto, uma dessas operações tiver o ProtectionLevel conjunto definido para ProtectionLevel.Sign, as mensagens para essa operação serão assinadas, mas todas as outras mensagens no contrato serão criptografadas e assinadas.
Para obter detalhes sobre os níveis de proteção e suas suposições e escopos, consulte Noções básicas sobre o nível de proteção.
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 do transporte ou da mensagem), o nível de proteção efetivo para todo o contrato é ProtectionLevel.EncryptAndSign. Se a associação não oferecer 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.