Transporte WCF Con el mensajeCredencial

Mi experiencia con WCF es mínima así que estoy seguro de que estoy haciendo algo mal. Pero después de horas de investigación no estoy haciendo las preguntas correctas o estoy atascada de moda.

Tengo una aplicación de formulario de ventanas (VB) con una referencia de servicio a un WSDL WCF que según la aplicación de prueba WCF utiliza el transporte ConMessageCredential security.

Cuando intento conectarme a él me da nombre de usuario OrPass cada vez. He verificado las credenciales con el operador de servicio así que es poco probable que estén equivocados.

Dim serviceProxy As New Provider.SubmissionServiceClient

 serviceProxy.ClientCredentials.UserName.UserName = "user"
 serviceProxy.ClientCredentials.UserName.Password = "pass"

Dim rtn2 = serviceProxy.ProcessSubmissionFromString(mystring)

Error de rendimiento:

System.ServiceModel.Security.MessageSecurityExceptionHResult=0x80131501 Mensaje=Se recibió de la otra parte una falta insegura o incorrectamente asegurada. Vea el FaultException interno para el código de fallas y el detalle. ...

Excepción interior 1: FaultException: Hubo un problema de autenticación de su nombre de usuario o contraseña. BadUserNameOrPassword**

¿Esta metodología no funciona con ese tipo de seguridad o simplemente me estoy perdiendo un elemento o una salida de la base?

Cualquier ayuda o perspicacia sería acertada.

Pregunta hecha hace 3 años, 4 meses, 28 días - Por scriptsorcerer


3 Respuestas:

  • Las credenciales eran incorrectas. Después de un poco de ida y vuelta, proporcionaron un nombre de usuario completamente cualificado que funcionó de inmediato. La versión acortada (sin el dominio) trabajaría en sus otros sistemas pero aparentemente su validador personalizado para estos servicios WCF necesitaba el nombre de usuario más largo.

    Si hubiera estado más confiado en mi WCF y habilidades en general podría haber ahorrado varias horas de trabajo y preocuparse en el proyecto de plazo.

    Respondida el Dec 17, 2020 a las 20:50 - por pixelpioneer

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás recibiendo indica que hay un problema con la autenticación del nombre de usuario o la contraseña al intentar conectarte al servicio WCF. Parece que estás configurando las credenciales de usuario correctamente en el cliente, pero aún así obtienes el error.

    Aquí tienes algunas sugerencias para solucionar el problema:

    • Asegúrate de que el servicio WCF está configurado para aceptar credenciales de usuario en el transporte ConMessageCredential. Revisa la configuración del servicio para verificar que esté correctamente configurado para la autenticación.
    • Verifica que el usuario y la contraseña que estás proporcionando en el cliente son correctos. Puedes intentar autenticarte manualmente en el servicio para asegurarte de que las credenciales son válidas.
    • Revisa si el servicio requiere algún tipo de configuración adicional para la autenticación de usuario, como por ejemplo la configuración de usuarios y roles en el servicio.
    • Considera habilitar el seguimiento de mensajes y la depuración en el servicio y en el cliente para obtener más información sobre el error y ayudarte a solucionarlo.

    Si después de realizar estos pasos aún no puedes solucionar el problema, te recomendaría buscar en la documentación específica del servicio que estás utilizando o contactar al operador del servicio para obtener más ayuda en la configuración de la autenticación con ConMessageCredential.

    Respondida el Dec 18, 2020 a las 20:51 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error "BadUserNameOrPassword" indica que las credenciales proporcionadas no son correctas o no están configuradas correctamente en el cliente. Aquí hay algunos pasos para solucionar el problema:

    • Verificar las credenciales: Asegúrate de que el nombre de usuario y la contraseña sean correctos y estén autorizados para acceder al servicio. Comprueba con el operador del servicio si es necesario.
    • Configurar el tipo de credencial: Para el transporte ConMessageCredential, debes configurar el tipo de credencial como UserNamePasswordCredentials:
    vb
    serviceProxy.ClientCredentials.UserName.UserName = "user"
    serviceProxy.ClientCredentials.UserName.Password = "pass"
    serviceProxy.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None
    
    • Configurar el modo de validación de certificados: Si el servicio utiliza un certificado para la autenticación, asegúrate de configurar el modo de validación de certificados en None para evitar errores de validación:
    vb
    serviceProxy.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None
    
    • Comprobar la configuración del enlace: Asegúrate de que la configuración del enlace en el archivo de configuración (app.config) o en el código sea correcta para el transporte ConMessageCredential. Debería verse algo como esto:
    xml
    
      
      
        
        
      
    
    
    • Verificar la configuración del servicio: Asegúrate de que el servicio esté configurado correctamente para usar el transporte ConMessageCredential y que el nombre de usuario y la contraseña coincidan con los proporcionados por el cliente.

    Si has seguido todos estos pasos y sigues teniendo problemas, considera las siguientes posibilidades:

    El servicio puede estar utilizando un tipo de credencial diferente, como un token. Puede haber un problema con la configuración de seguridad en el servicio o en el cliente. * Puede haber un problema de red o de firewall que esté bloqueando la comunicación.

    Respondida el Dec 18, 2020 a las 20:54 - por Gemini

    Votos positivos: 0 | Votos negativos: 0