ServiceContractAttribute.ProtectionLevel ServiceContractAttribute.ProtectionLevel ServiceContractAttribute.ProtectionLevel ServiceContractAttribute.ProtectionLevel Property

Définition

Spécifie si la liaison pour le contrat doit prendre en charge la valeur de la propriété 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

Valeur de propriété

Une des valeurs de ProtectionLevel.One of the ProtectionLevel values. La valeur par défaut est None.The default is None.

Exceptions

Remarques

Utilisez la propriété ProtectionLevel pour spécifier le degré pour lequel la liaison de contrat requiert le chiffrement, les signatures numériques ou les deux à la fois pour les points de terminaison qui exposent le contrat.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. La valeur définie ici est la valeur par défaut pour tous les messages d'opération y compris les erreurs.The value set here is the default value for all operation messages including faults.

Il est important de se rappeler que le comportement de protection au moment de l'exécution est la combinaison des valeurs de niveau de protection affectées aux propriétés suivantes.It is important to remember that the protection behavior at runtime is the combination of the protection-level values set on the following properties. Ces propriétés ont une structure hiérarchique.These properties have a hierarchical structure. La définition de la valeur la plus à l'extérieur établit le paramètre par défaut pour toutes les portées plus restreintes, sauf si une valeur différente est définie explicitement pour une portée plus restreinte.Setting the outermost value establishes the default setting for all narrower scopes unless a different value for a narrower scope is explicitly set. Dans ce cas, la valeur externe reste la valeur par défaut pour toutes les portées plus restreintes à l'exception de celles qui sont spécifiquement définies.In this case, the outer value remains the default for all narrower scopes with the exception of that specifically set.

Par exemple, si ServiceContractAttribute.ProtectionLevel a la valeur ProtectionLevel.EncryptAndSign et qu'aucune autre portée plus étroite n'a de paramètres de niveau de protection, tous les messages dans un contrat d'opération sont chiffrés et signés, y compris les messages d'erreur.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. Toutefois, si vous affectez au jeu OperationContractAttribute de l'une de ces opérations, la valeur ProtectionLevel.Sign, les messages pour cette opération sont signés mais tous les autres messages dans le contrat sont chiffrés et signés.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.

Pour plus d’informations sur les niveaux de protection et leurs hypothèses et étendues, consultez Présentation du niveau de protection.For details about protection levels and their assumptions and scopes, see Understanding Protection Level.

Les portées auxquelles ces valeurs sont affectées sont les suivantes :The scopes at which these values are set are:

ServiceContractAttribute.ProtectionLevel

OperationContractAttribute.ProtectionLevel

FaultContractAttribute.ProtectionLevel

MessageContractAttribute.ProtectionLevel

Propriété MessageContractMemberAttribute.ProtectionLevel sur System.ServiceModel.MessageHeaderAttribute.The MessageContractMemberAttribute.ProtectionLevel property on System.ServiceModel.MessageHeaderAttribute.

Propriété MessageContractMemberAttribute.ProtectionLevel sur System.ServiceModel.MessageBodyMemberAttribute.The MessageContractMemberAttribute.ProtectionLevel property on System.ServiceModel.MessageBodyMemberAttribute.

Lorsque aucun niveau de protection n’est spécifié explicitement sur le contrat et que la liaison sous-jacente prend en charge la sécurité (au niveau du transport ou du message), le niveau de protection effectif pour l’ensemble du contrat est 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. Si la liaison ne prend pas en charge la sécurité (comme BasicHttpBinding), le System.Net.Security.ProtectionLevel effectif est ProtectionLevel.None pour l'ensemble du contrat.If the binding does not support security (such as BasicHttpBinding), the effective System.Net.Security.ProtectionLevel is ProtectionLevel.None for the whole contract. Le résultat est que selon la liaison du point de terminaison, les clients peuvent avoir besoin d’une protection de sécurité au niveau du message ou du transport différente même lorsque le contrat spécifie 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.

S’applique à