ServiceContractAttribute.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.
Especifica se a associação para o contrato deve oferecer suporte ao valor da propriedade ProtectionLevel.
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 especificar o grau em que a associação de contrato requer criptografia, assinaturas digitais ou ambos para pontos de extremidade que expõem o contrato. O valor definido aqui é o valor padrão para todas as mensagens de operação, incluindo falhas.
É 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 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. 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.
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.