2010-11-08 28 views
7

Estoy actualizando una aplicación de .net 1.1 a 3.5. Esta aplicación se conecta a un servicio WCF. Anteriormente, el cliente de servicios web se configura para utilizar un token de seguridad, así:Cómo configurar un token de seguridad en WCF?

RegistrationWSWse registrationService = new RegistrationWSWse(); 
Microsoft.Web.Services2.Security.Tokens.UsernameToken token = new Microsoft.Web.Services2.Security.Tokens.UsernameToken("some username", "some password", Microsoft.Web.Services2.Security.Tokens.PasswordOption.SendPlainText); 
registrationService.RequestSoapContext.Security.MustUnderstand=false; 
registrationService.RequestSoapContext.Security.Tokens.Add(token); 

Ahora he añadido una nueva referencia de servicio en Visual Studio para el servicio web, pero el auto genera código no proporciona ninguna manera para configurar el encabezado de seguridad, como se indica arriba.

¿Es esto algo que debe configurarse en el archivo de configuración, sección system.serviceModel?


actualización

La razón por la que no vi las propiedades de nombre de usuario/contraseña era porque estaba trabajando con la interfaz de servicio, no la clase de implementación real.

que fue capaz de establecer estas cosas por colada de la instancia al tipo, así:

((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.UserName = userName; 
((RegistrationWSClient)registrationWs).ChannelFactory.Credentials.UserName.Password = password; 

La otra cosa importante que tiene que hacer es actualizar el archivo app.config cliente. Si no lo hace, el nombre de usuario/contraseña no se establecerá en el encabezado SOAP. Ejemplo:

<security mode="TransportWithMessageCredential" /> 

Respuesta

1

Consulte this article on MSDN. This post también tiene buena información sobre su pregunta.

+0

Gracias por los enlaces Kamyar. El problema era que estaba interactuando con la interfaz de servicio, no con la clase de proxy. Solo necesitaba hacer un molde para establecer el nombre de usuario/contraseña - ver arriba. –

+0

@Paul: Me alegro de que lo haya hecho funcionar. Aprendí algunas cosas nuevas también. Gracias. – Kamyar

Cuestiones relacionadas