Tenho um webservice que estou consumindo, me deparei com um problema onde o mesmo informa que a sessão de solicitação do login e diferente da solicitação de confirmação.
O cliente está em
asp.net mvc C# , todas as rotinas estão prontas, mais tenho este problema.
O webservice recebe apenas o xml pronto, então eu mesmo estou montando o xml fazendo uma concatenação de strings.
Como eu fiz.
Após adicionar o meu webservice nas referências, tenho alguns métodos que faz a criação do xml padronizado de acordo com cada modelo do manual
Para realizar o login:
//1 - criando o arquivo do login
CriacaoDoSolicitaLogin();
//2 - chamando o arquivo xml de login sem assinar
string xml1 = LerXML(@"
SolicitaLogonSemAssinatura.xml");
//3 - assina o xml do solicitalogin
AssinaXML(xml1, "1");
//4 - Chama o xml de login assinado
string xml2 = LerXML(@"
SolicitaLogon.xml");
//5 - enviando o arquivo assinado para o webservice solicitaLogon
br.jus.tjsp.esaj.ServicoPJ objWSProducao = new
br.jus.tjsp.esaj.ServicoPJ();
string RetornaRespostaXml = objWSProducao.SolicitaLogon(xml2);
OBS: Aqui eu tenho sucesso, me retornar um código que preciso criptografar em reenviar
//6 - grava o retorno xml do login
EscreveXMLIndividual(RetornaRespostaXml, "
confirmaLogonRetorno.xml");
//pego o código do desafio
//8 - Criptografa o código desafio
string codigodesafio = AssinarCodigoDesafio(CodigoDesafio);
//9 - monta o novo xml para envio da confirmação
CriacaoDoConfirmacaLogin(codigodesafio);
//10 - chama o arquivo confirmaLogon
string desafioxml = LerXML(@"
confirmaLogonSemAssinatura.xml");
//11 - assina o arquivo e faz a criação do novo confirmaLoginAssinado
AssinaXML(desafioxml,"2");
//12 - Chama o xml de confirmaLogin assinado
string xml3 = LerXML(@"
confirmaLogon.xml");
//13 - enviando o arquivo
string RetornaConfirmacaoDesafio = objWSProducao.confirmaLogon(xml3);
EscreveXMLIndividual(RetornaConfirmacaoDesafio, "
RetornaConfirmacaoDesafio.xml");
Neste ponto, informa que a sessão do webservice não era a mesma da solicitação do login.
Recebo uma mensagem informando "erro sessao da confirmacao diferente da sessao da solicitacao de logon"
no manual fala isso:
todas as chamadas ao web service deverão ser realizadas dentro de uma mesma sessão. Sendo que, uma sessão é identificada por cookie (JSESSIONID), que precisará estar presente em todas as requisições dessa sessão. Assim, será possível verificar de forma adequada a identidade do usuário que efetuou o login e por consequência dar as respectivas autorizações para acesso às demais mensagens do Web Service.
Prazo de Entrega: Não estabelecido