¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo agregar un encabezado de autenticación básica en cada solicitud de WS usando PB.NET - Versión 12.5.1.4953

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Hola,

Necesito agregar un encabezado de autenticación básica en cada solicitud de WS.

Ahora sé que debo usar PB.NET.

Así que lo estoy usando en la versión 12.5.1.4953.

Con el nombre de usuario "max" y la contraseña "test", el encabezado debe lucir así:

GET /ebsmws?wsdl HTTP/1.1

Host: edm.umweltbundesamt.at

Authorization: Basic dXNlcjp0ZXN0==

¿Cómo puedo hacer esto?

Bruce, por favor ayuda 🙂

Saludos, Christian.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Lo intenté.

Pero no agrega la línea "Authorization: Basic dXNlcjp0ZXN0=="

la única forma que encontré es agregar la línea de encabezado manualmente.

_client.wcfConnectionObject.BasicHttpBinding.AddHttpRequestHeader(PBWCF.HttpRequestHeaderType.Authorization!, "Basic " + ls_header )

entonces funciona.

Pero creo que esa no debería ser la única solución.

Creo que el encabezado de autorización es un tipo de encabezado estándar.

¿Hay alguna otra forma de agregarlo?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Dos problemas:

1. No cambies el constructor del proxy. Si regeneras el proxy, tus cambios de código se eliminarán.

2. Necesitas crear las diversas clases de objetos y luego asignarlas a las propiedades en cuestión. Intenta algo más en estas líneas:

PBWCF.UserNameCredential usercreds = create PBWCF.UserNameCredential()usercreds.UserName = 'scott'usercreds.Password = 'tiger'PBWCF.WCFClientCredential creds = create PBWCF.WCFClientCredential()creds.UserName = usercredsproxy.wcfConnectionObject.ClientCredential = creds
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Lo intenté en el constructor del objeto proxy.

Lo cambié de esta manera:

Comenté

// d_binding.Security.Transport.ClientCredentialType = PBWCF.HttpClientCredentialType.NONE!

y añadí

d_binding.Security.Transport.ClientCredentialType = PBWCF.HttpClientCredentialType.BASIC!

d_binding.Security.Message = create PBWCF.BasicHttpMessageSecurity

d_binding.Security.Message.SecurityAlgorithm = PBWCF.SecurityAlgorithmType.DEFAULT!

d_binding.Security.Message.ClientCredentialType = PBWCF.BasicHttpMessageCredentialType.USERNAME!

luego en el Evento para hacer la conexión hago lo siguiente:

edmbs_FetchEndpointClient _client // Proxy NVO

_client = create edmbs_FetchEndpointClient

_client.wcfConnectionObject.ClientCredential.UserName.UserName="edm22267"

_client.wcfConnectionObject.ClientCredential.UserName.Password="23012013"

y luego llamo a la función.

Pero no funciona.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

La clase WCFConnection tiene una propiedad ClientCredential de tipo WCFClientCredential. Esa clase tiene una propiedad UserName de tipo WCFUserNameCredential. A su vez, esa clase tiene los atributos de nombre de usuario y contraseña que estás buscando.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?