2012-02-09 26 views

Respuesta

5

Un contrato de mensaje puede indicar si los encabezados y/o el cuerpo del mensaje deben estar digitalmente firmados y encriptados.

Esto se hace estableciendo la propiedad System.ServiceModel.MessageContractMemberAttribute.ProtectionLevel en los atributos MessageHeaderAttribute y MessageBodyMemberAttribute. La propiedad es una enumeración del tipo System.Net.Security.ProtectionLevel y puede establecerse en None (sin encriptación o firma), Sign (firma digital solamente) o EncryptAndSign (encriptación y firma digital). El valor predeterminado es EncryptAndSign.

Para que estas funciones de seguridad funcionen, debe configurar correctamente el enlace y los comportamientos. Si utiliza estas funciones de seguridad sin la configuración adecuada (por ejemplo, intentar firmar un mensaje sin proporcionar sus credenciales), se lanza una excepción en el momento de la validación.

Para los encabezados de mensaje, el nivel de protección se determina individualmente para cada encabezado.

Para las partes del cuerpo del mensaje, el nivel de protección se puede considerar como el "nivel de protección mínimo". El cuerpo tiene solo un nivel de protección, independientemente de la cantidad de partes del cuerpo. El nivel de protección del cuerpo está determinado por la configuración de la propiedad ProtectionLevel más alta de todas las partes del cuerpo. Sin embargo, debe establecer el nivel de protección de cada parte del cuerpo al nivel de protección mínimo real requerido. Por favor, consulte el artículo this para obtener ejemplos más detallados.

Cuestiones relacionadas