INTRODUCCIÓN

Windows Communication Foundation (WCF) no tiene la funcionalidad para enviar mensajes protegidos y, a continuación, recibir respuestas no seguras, o para enviar mensajes no seguros y recibir respuestas seguras. La revisión que se describe en este artículo agrega un nuevo atributo enableUnsecuredResponse . El valor predeterminado del atributo enableUnsecuredResponse es false. Si establece el valor de este atributo en true, se habilitan las siguientes nuevas características de WCF:

  • Clientes WCF pueden aceptar respuestas no seguras, incluso si los mensajes salientes se protegen mediante el protocolo Secure Socket Layer (SSL) para firmar el cuerpo del mensaje.

  • Servicios WCF pueden enviar respuestas no seguras que no tienen ningún encabezado de seguridad en los sobres SOAP incluso si la solicitud está protegida.

Nota: El atributo enableUnsecuredResponse sólo se aplica sólo al tipo de enlace CustomBinding .

Solución

Si está utilizando la versión 3.0 de.NET Framework, instale el hotfix que se describe en el siguiente artículo de Microsoft Knowledge Base:

CORREGIR 967105 : una revisión que permite que WCF enviar los mensajes protegidos y recibir no segura de las respuestas, y enviar mensajes no seguros y recibir respuestas seguras, está disponible para la versión 3.0 de.NET FrameworkSi utiliza.NET Framework 3.5 Service Pack 1 en Windows 7 o Windows Server 2008 R2, instale la revisión que se describe en el siguiente artículo de Microsoft Knowledge Base:

977420 hay un paquete acumulativo de revisiones solucionar problemas en Windows Communication Foundation en.NET Framework 3.5 SP1 para Windows 7 y Windows Server 2008 R2
Si está utilizando el Service Pack 1 de.NET Framework 3.5 en otros sistemas operativos, instale la revisión siguiente para resolver el problema.

Ahora hay una revisión compatible de Microsoft. Sin embargo, se pretende corregir el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión puede ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo service pack que contenga esta revisión.

Para resolver este problema inmediatamente, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de números de teléfono de los servicios de soporte al cliente de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota: En casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

Requisitos previos

Para aplicar este hotfix debe tener el Service Pack 1 de.NET Framework 3.5.

Requisito de reinicio

No es necesario que reinicie el equipo después de aplicar esta revisión si no se utiliza ninguna instancia del de.NET Framework.

Información de reemplazo de revisión

Este hotfix no sustituye a otras revisiones.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.

Información de archivo para todas las versiones basadas en x86 de Windows Server 2003 y Windows XP

Nombre del archivo

Versión del archivo

Tamaño de archivo

Fecha

Hora

Plataforma

Servicemonikersupport.dll

3.0.4506.4119

17,240

01-Jun-2009

22:56

x86

System.runtime.serialization.dll

3.0.4506.4119

970,752

01-Jun-2009

22:56

x86

System.servicemodel.dll

3.0.4506.4119

5,931,008

01-Jun-2009

22:56

x86

Información de archivo para todas las versiones basadas en x64 de Windows Server 2003 y Windows XP

Nombre del archivo

Versión del archivo

Tamaño de archivo

Fecha

Hora

Plataforma

Servicemonikersupport.dll

3.0.4506.4119

19,304

01-Jun-2009

22:28

x64

System.runtime.serialization.dll

3.0.4506.4119

847,872

01-Jun-2009

22:28

x64

System.servicemodel.dll

3.0.4506.4119

5,267,456

01-Jun-2009

22:28

x64

Información de archivo para todas las versiones basadas en x86 de Windows Vista Service Pack 2 y Windows Server 2008 SP2

Nombre del archivo

Versión del archivo

Tamaño de archivo

Fecha

Hora

Servicemonikersupport.dll

3.0.4506.4120

17,240

10-Jun-2009

06:55

System.runtime.serialization.dll

3.0.4506.4120

970,752

10-Jun-2009

06:55

System.servicemodel.dll

3.0.4506.4120

5,935,104

10-Jun-2009

06:55

Información de archivo para todas las versiones basadas en x64 de Windows Vista Service Pack 2 y Windows Server 2008 SP2

Nombre del archivo

Versión del archivo

Tamaño de archivo

Fecha

Hora

Plataforma

Servicemonikersupport.dll

3.0.4506.4120

19,288

10-Jun-2009

06:56

x64

System.runtime.serialization.dll

3.0.4506.4120

847,872

10-Jun-2009

06:56

x64

System.servicemodel.dll

3.0.4506.4120

5,271,552

10-Jun-2009

06:56

x64

Información de archivos para todas las versiones basadas en Itanium de Windows Server 2008 SP2

Nombre del archivo

Versión del archivo

Tamaño de archivo

Fecha

Hora

Plataforma

Servicemonikersupport.dll

3.0.4506.4120

33,640

10-Jun-2009

06:56

IA-64

System.runtime.serialization.dll

3.0.4506.4120

847,872

10-Jun-2009

06:56

IA-64

System.servicemodel.dll

3.0.4506.4120

5,271,552

10-Jun-2009

06:56

IA-64

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Utilice el siguiente código de ejemplo para probar el atributo enableUnsecuredResponse :

Servicio

BindingElementCollection serviceBec = new BindingElementCollection();
SecurityBindingElement serviceSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement();
serviceSbe.EnableUnsecuredResponse = true;
serviceBec.Add(serviceSbe);
serviceBec.Add(new TextMessageEncodingBindingElement());
serviceBec.Add(new HttpTransportBindingElement());
Binding serviceBinding = new CustomBinding(serviceBec);

ServiceHost serviceHost = new ServiceHost(typeof(RequestReply));

serviceHost.Open();

Cliente

BindingElementCollection clientBec = new BindingElementCollection();
SecurityBindingElement clientSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement();
clientSbe.EnableUnsecuredResponse = true;
clientBec.Add(clientSbe);
clientBec.Add(new TextMessageEncodingBindingElement());
clientBec.Add(new HttpTransportBindingElement());
Binding clientBinding = new CustomBinding(clientBec);

IRequestReply channel = cf.CreateChannel();
try
{
channel.SendString("Hello");
cf.Close();
}

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cómo de satisfecho está con la calidad de la traducción?

¿Qué ha afectado a tu experiencia?

¿Algún comentario adicional? (Opcional)

¡Gracias por sus comentarios!

×