Compartir a través de


FaultContractAttribute.ProtectionLevel Propiedad

Definición

Especifica el nivel de protección que el error de SOAP requiere del enlace.

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

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

Comentarios

Utilice la propiedad FaultDescription.ProtectionLevel para especificar hasta qué punto el enlace debe cifrar, firmar o ambas cosas al enviar el error de SOAP. Se recomienda encarecidamente que el error de una operación decida explícitamente los requisitos de nivel de protección de seguridad en el contrato. El nivel de protección predeterminado es ProtectionLevel.None, lo que significa que el mensaje de error soap que está definiendo no requiere cifrado ni una firma digital (aunque el enlace puede proporcionar esta compatibilidad si está configurado para hacerlo). Si un mensaje de error contiene información confidencial o puede provocar problemas de seguridad, se recomienda encarecidamente que la ProtectionLevel propiedad se establezca en ProtectionLevel.EncryptAndSign. Para más información sobre los problemas de seguridad, consulte Descripción del nivel de protección.

El comportamiento de protección en el tiempo de ejecución es la combinación de las propiedades de nivel de protección que 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 se establece ProtectionLevel.EncryptAndSign en y ningún otro ámbito más estrecho tiene una configuración de nivel de protección, todos los mensajes de un contrato de operación se cifran y firman, incluidos los mensajes de error. Sin embargo, si una de esas operaciones tiene establecido ProtectionLevel.Signen OperationContractAttribute , los mensajes de esa operación se firman, pero todos los demás mensajes del contrato se cifran y firman, incluidos los mensajes de error.

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