Compartir a través de


OperationContractAttribute.ProtectionLevel Propiedad

Definición

Obtiene o establece un valor que especifica si los mensajes de una operación deben cifrarse, firmarse o 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 de propiedad

ProtectionLevel

Uno de los valores de ProtectionLevel. De manera predeterminada, es None.

Excepciones

El valor no es uno de los valores de ProtectionLevel.

Comentarios

Utilice la propiedad ProtectionLevel para controlar si los mensajes de una operación deben cifrarse, firmarse o ambas cosas. El valor establecido aquí es el valor predeterminado para todos los mensajes especificados de esta operación, salvo que un ámbito más restringido lo invalide.

Es importante recordar que el comportamiento de protección en el tiempo de ejecución es la combinación de los valores de nivel de protección definidos en las propiedades siguientes. Estas propiedades tienen una estructura jerárquica. Al establecer el valor extremo, se establece la configuración predeterminada para todos los ámbitos más restringidos a menos que se establezca un valor diferente para un ámbito más restringido explícitamente. En este caso, el valor externo sigue siendo el predeterminado para todos los ámbitos más restringidos con la excepción del definido específicamente.

Por ejemplo, si ServiceContractAttribute.ProtectionLevel está establecido en ProtectionLevel.EncryptAndSign y ningún otro ámbito más restringido tiene valores de nivel de protección, se cifrarán y firmarán todos los mensajes en un contrato de la operación. Si, sin embargo, una de esas operaciones tiene ProtectionLevel definido en ProtectionLevel.Sign, se firmarán los mensajes para esa operación pero se cifrarán y firmarán todos los demás mensajes en el contrato.

Para más información sobre los niveles de protección y sus suposiciones y ámbitos, consulte Descripción del nivel de protección.

Los ámbitos en los que se establecen estos valores son:

ServiceContractAttribute.ProtectionLevel

OperationContractAttribute.ProtectionLevel

FaultContractAttribute.ProtectionLevel

MessageContractAttribute.ProtectionLevel

La propiedad MessageContractMemberAttribute.ProtectionLevel en System.ServiceModel.MessageHeaderAttribute.

La propiedad MessageContractMemberAttribute.ProtectionLevel en System.ServiceModel.MessageBodyMemberAttribute.

Cuando no se haya especificado de manera concreta ningún nivel de protección en el contrato y el enlace subyacente admita la seguridad (ya sea en el nivel de transporte o de mensaje), el nivel de protección efectivo para todo el contrato será ProtectionLevel.EncryptAndSign. Si el enlace no admite la seguridad (como BasicHttpBinding), el System.Net.Security.ProtectionLevel eficaz será ProtectionLevel.None para todo el contrato. El resultado será (en función del enlace del punto de conexión) que los clientes pueden exigir una protección de nivel de seguridad diferente para los mensajes o el transporte aun cuando el contrato especifique ProtectionLevel.None.

Se aplica a