Autenticar webservice - horus-ws-basico

30/03/2016

0

Olá,

Estou desenvolvendo uma integração para enviar dados da farmácia municipal ao ministério da saúde.
O problema é que não sei como envio o usuário e senha.

Endereço do webservice: http://aplicacao.saude.gov.br/horus-ws-basico/RecebeDadosWS?wsdl

O retorno está sendo "Invalid user"

Veja o meu fonte:

var ws = new RecebeDadosWS();

var conDadosMun = new consultarAllDadosPorMunicipio();
conDadosMun.codigoMunicipio = "5104559";
conDadosMun.dataEnvio = "30/03/2016";
conDadosMun.nomeUsuario = "jumzanon@hotmail.com";
conDadosMun.numeroProtocolo = "123";

consultarAllDadosPorMunicipioResponse retorno = ws.consultarAllDadosPorMunicipio(conDadosMun);

MessageBox.Show(retorno.@return.horuswsmensagem.mensagemglobal);
Fabiane

Fabiane

Responder

Post mais votado

30/03/2016

Já tentou procurar pela documentação desta API no site do ministério da saúde?

Pois existem várias forma de fazer o que você quer e somente quem desenvolveu a API ou alguém que já usou poderá ajudá-la.

Jothaz

Jothaz
Responder

Mais Posts

30/03/2016

Fabiane

Em primeiro lugar, obrigado por responder.

Tudo o que tem de documentação está nesse link:
http://portalsaude.saude.gov.br/index.php/o-ministerio/principal/leia-mais-o-ministerio/218-sctie-raiz/daf-raiz/ceaf-sctie/qualifarsus-raiz/eixo-informacao/l1-eixo-informacao/8508-envio-de-dados-webservice

O meu usuário foi criado e autorizado conforme a instrução do site, mas não tem um método ou instrução de como autenticar.
Responder

23/01/2017

Rodolfo

Olá Fabiane!

Por acaso já fez toda integração necessária com o Hórus?
Estou tentando usar o recebeDados, mas acho q o xml não está indo, quando consulto o protocolo, me retorna que o xml é inválido.

Att.
Responder

19/05/2017

Marcos Santos

Alguém já conseguiu resolver o problema de invalid user?

Estou tentando integrar tbm e recebo a mesma resposta, mesmo usuário estando habilitado para acessar o webservice
Responder

25/07/2017

Daniel

Olá!

Alguém já está tendo sucesso na integração com web service ou dispõem de algum manual mais completo?
Responder

19/12/2017

Luiz Yamashita

Estou com o mesmo problema, já tenho Usuário e Senha e esta Autorizado no SCPA, porem quando vou rodar o WS da a mensagem que ainda não esta Autorizado, alguém ai já passou por isso, estão conseguindo a integração sem problemas?


[]s
Responder

02/03/2018

Fernando

Estou entrando agora pra desenvolver a integração com o horus, mas não consigo autenticar... alguém conseguiu resolver?
Estou em C#, mas qualquer ajuda é bem vinda...
Responder

13/07/2018

Lucas Silva

Pessoal,

Consegui resolver através desse link: https://blogs.msdn.microsoft.com/mohamedg/2012/12/13/adding-http-headers-to-wcf-calls/

Meu código:

public class ClientMessageInspector : IClientMessageInspector
{
public ClientMessageInspector()
{
throw new NotImplementedException();
}

public ClientMessageInspector(string userAuthentication, string passwordAuthentication)
{
this.authorization = "Basic " + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(string.Format(":", userAuthentication, passwordAuthentication)));
}

private string authorization;

public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
if (!string.IsNullOrEmpty(this.authorization))
{
if (request.Properties.Count == 0 || request.Properties[HttpRequestMessageProperty.Name] == null)
{
var property = new HttpRequestMessageProperty();

property.Headers["Authorization"] = this.authorization;
request.Properties.Add(HttpRequestMessageProperty.Name, property);
}
else
{
((HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name]).Headers["Authorization"] = this.authorization;
}
}

return null;
}

public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
throw new NotImplementedException();
}
}


public class CustomEndpointBehavior : IEndpointBehavior
{
private string userAuthentication;
private string passwordAuthentication;

public CustomEndpointBehavior()
{
throw new NotImplementedException();
}

public CustomEndpointBehavior(string userAuthentication, string passwordAuthentication)
{
this.userAuthentication = userAuthentication;
this.passwordAuthentication = passwordAuthentication;
}

public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
clientRuntime.ClientMessageInspectors.Add(new ClientMessageInspector(this.userAuthentication, this.passwordAuthentication));
}


public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
{
// Nothing special here
}

public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
{
// Nothing special here
}

public void Validate(ServiceEndpoint endpoint)
{
// Nothing special here
}
}


Na chamada para fazer autenticação:

WS_HORUS_HM.HorusWSAsyncClient soapTransmissaoDadosDispensacao = new WS_HORUS_HM.HorusWSAsyncClient();

soapTransmissaoDadosDispensacao.Endpoint.Behaviors.Add(new CustomEndpointBehavior(usuario, senha));

try
{
//Para enviar as informações para o WebService
WS_HORUS_HM.ProtocoloType protocoloResultado = soapTransmissaoDadosDispensacao.informarDispensacaoMedicamentoEmLote(informarDispensacaoMedicamentoEmLote);

//Para consultar as inconsistências

WS_HORUS_HM.InconsistenciaProcessamentoLoteType inconsistencias = soapTransmissaoDadosDispensacao.consultarInconsistencias(protocoloResultado);

if (inconsistencias != null)
{
foreach (WS_HORUS_HM.InconsistenciaProcessamentoLoteTypeInconsistencias inconsistencia in inconsistencias.inconsistencias)
{
}
}
}
catch(FaultException ex)
{
}
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar