¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como adicionar um cabeçalho de autenticação básica em cada solicitação de WS usando PB.NET - Versão 12.5.1.4953

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

Olá,

Preciso adicionar um cabeçalho de autenticação básica em cada solicitação de WS.

Agora sei que devo usar PB.NET.

Estou usando a versão 12.5.1.4953.

Com o nome de usuário "max" e a senha "test", o cabeçalho deve parecer assim:

GET /ebsmws?wsdl HTTP/1.1

Host: edm.umweltbundesamt.at

Authorization: Basic dXNlcjp0ZXN0==

Como posso fazer isso?

Bruce, por favor ajude ?

Saudações, Christian.

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

4 Respuestas

0
Cargando...

Eu tentei.

Mas não adiciona a linha "Authorization: Basic dXNlcjp0ZXN0=="

A única maneira que encontrei foi adicionar a linha de cabeçalho manualmente.

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

então funciona.

Mas acredito que essa não deveria ser a única solução.

Acredito que o cabeçalho de autorização é um tipo de cabeçalho padrão.

Existe alguma outra forma de adicioná-lo?

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

Dois problemas:

1. Não altere o construtor do proxy. Se regenerar o proxy, suas alterações de código serão perdidas.

2. Você precisa criar as diversas classes de objetos e então atribuí-las às propriedades em questão. Tente algo mais nessas linhas:

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...

Eu tentei no construtor do objeto proxy.

Eu mudei dessa forma:

Comentei

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

e adicionei

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!

então no evento para fazer a conexão eu faço o seguinte:

edmbs_FetchEndpointClient _client // Proxy NVO

_client = create edmbs_FetchEndpointClient

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

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

e então chamo a função.

Mas não funciona.

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

A classe WCFConnection tem uma propriedade ClientCredential do tipo WCFClientCredential. Essa classe tem uma propriedade UserName do tipo WCFUserNameCredential. Por sua vez, essa classe possui os atributos de nome de usuário e senha que você está procurando.

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?