Partager via


ServiceContractAttribute.ProtectionLevel Propriété

Définition

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

Valeur de propriété

ProtectionLevel

Une des valeurs de l'objet ProtectionLevel. La valeur par défaut est None.

Exceptions

La valeur ne fait pas partie des valeurs ProtectionLevel.

Remarques

Utilisez la ProtectionLevel propriété pour spécifier le degré auquel la liaison de contrat nécessite le chiffrement, les signatures numériques ou les deux pour les points de terminaison qui exposent le contrat. La valeur définie ici est la valeur par défaut pour tous les messages d'opération y compris les erreurs.

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. Ces propriétés ont une structure hiérarchique. 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. 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.

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. 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.

Pour plus d’informations sur les niveaux de protection et leurs hypothèses et étendues, consultez Présentation du niveau de protection.

Les portées auxquelles ces valeurs sont affectées sont les suivantes :

ServiceContractAttribute.ProtectionLevel

OperationContractAttribute.ProtectionLevel

FaultContractAttribute.ProtectionLevel

MessageContractAttribute.ProtectionLevel

Propriété MessageContractMemberAttribute.ProtectionLevel sur System.ServiceModel.MessageHeaderAttribute.

Propriété MessageContractMemberAttribute.ProtectionLevel sur 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. 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. 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.

S’applique à