none
Consumindo Web Service consulta cadastro Nfe! RRS feed

  • Pergunta

  • Senhores,

    Estou desenvolvendo uma aplicação que consome o Webservices Consulta cadastro da Nfe.

    Na chamada do objeto ja instanciado, me retorna o seguinte erro: A solicitação HTTP está proibida com o esquema de autenticação de cliente 'Anonymous'.

    Mas ja estou passando o certificado na chamada do Methodo. em Debug consigo ver o certificado e todas as suas propriedades, data de validade e numero de serie.

    alguem sabe oque pode estar ocorrendo?

    uso o segundo overload do do methodo SetCertificate, pois o primeiro me retorna o erro abaixo:

    Cad.ClientCredentials.ClientCertificate.SetCertificate(

    "EMPRESA", StoreLocation.CurrentUser, StoreName.My);

    Não é possível encontrar o certificado X.509 usando os seguintes critérios de pesquisa: StoreName 'My', StoreLocation 'CurrentUser', FindType 'FindBySubjectDistinguishedName', FindValue 'EMPRESA'.

    Uso o Framework 3.5

     

     

    string CadCabMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cabecMsg xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.02\"><versaoDados>1.01</versaoDados></cabecMsg>";

     

     

    string CadMsg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ConsCad xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.02\"><infCons><xServ>CONS-CAD</xServ><UF>SP</UF><IE>645252690113</IE><CNPJ>48539407008879</CNPJ></infCons></ConsCad>";

    ConsultaCadastro.

     

    CadConsultaCadastroSoapClient Cad = new CadConsulta.ConsultaCadastro.CadConsultaCadastroSoapClient();

    Cad.ClientCredentials.ClientCertificate.SetCertificate(

     

    StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectName, "EMPRESA");

     

     

    string retorno = Cad.consultaCadastro(CadCabMsg, CadMsg); //Erro nessa chamada

    A solicitação HTTP está proibida com o esquema de autenticação de cliente 'Anonymous'.

    quinta-feira, 4 de fevereiro de 2010 15:27

Respostas

  • Klayton,

    Seu Certificado tem que ser valido. para esse serviço o certificado da ASSOCIAÇÃO, não serve.

    uso o .net 2.0 veja se te ajuda como faço para selecionar o certificado;

    public X509Certificate2 oCertificado;    public bool lLocalizouCertificado;    public DateTime dValidadeInicial;    public DateTime dValidadeFinal;    public string sSubject;    public X509Certificate2 SelecionarCertificado()    {      X509Certificate2 vRetorna;      X509Certificate2 oX509Cert = new X509Certificate2();      X509Store store = new X509Store("MY", StoreLocation.CurrentUser);      store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);      X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;      X509Certificate2Collection collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);      X509Certificate2Collection collection2 = (X509Certificate2Collection)collection.Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, false);      X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(collection2, "Certificado(s) Digital(is) disponível(is)", "Selecione o certificado digital para uso no aplicativo", X509SelectionFlag.SingleSelection);      if (scollection.Count == 0)      {        string msgResultado = "Nenhum certificado digital foi selecionado ou o certificado selecionado está com problemas.";        MessageBox.Show(msgResultado, "Advertência", MessageBoxButtons.OK, MessageBoxIcon.Warning);        //vRetorna = false;        vRetorna = null;      }      else      {        oX509Cert = scollection[0];
    sexta-feira, 16 de abril de 2010 14:17

Todas as Respostas

  • Klayton,

    Alguma novidade quanto a essa sua dúvida?
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    quinta-feira, 18 de março de 2010 22:31
    Moderador
  • Klayton,

    Seu Certificado tem que ser valido. para esse serviço o certificado da ASSOCIAÇÃO, não serve.

    uso o .net 2.0 veja se te ajuda como faço para selecionar o certificado;

    public X509Certificate2 oCertificado;    public bool lLocalizouCertificado;    public DateTime dValidadeInicial;    public DateTime dValidadeFinal;    public string sSubject;    public X509Certificate2 SelecionarCertificado()    {      X509Certificate2 vRetorna;      X509Certificate2 oX509Cert = new X509Certificate2();      X509Store store = new X509Store("MY", StoreLocation.CurrentUser);      store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);      X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;      X509Certificate2Collection collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);      X509Certificate2Collection collection2 = (X509Certificate2Collection)collection.Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, false);      X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(collection2, "Certificado(s) Digital(is) disponível(is)", "Selecione o certificado digital para uso no aplicativo", X509SelectionFlag.SingleSelection);      if (scollection.Count == 0)      {        string msgResultado = "Nenhum certificado digital foi selecionado ou o certificado selecionado está com problemas.";        MessageBox.Show(msgResultado, "Advertência", MessageBoxButtons.OK, MessageBoxIcon.Warning);        //vRetorna = false;        vRetorna = null;      }      else      {        oX509Cert = scollection[0];
    sexta-feira, 16 de abril de 2010 14:17
  • Maicon

        Você teria como me indicar +/- a rotina para consultar uma NFe utilizando web service, pois estou com dúvida na sequência e quais seriam os comandos minimos para acessar com segurança a NF ?

    terça-feira, 18 de novembro de 2014 01:55
  • Klayton

        Você teria como me indicar +/- a rotina para consultar uma NFe utilizando web service, pois estou com dúvida na sequência e quais seriam os comandos minimos para acessar com segurança a NF ?

    terça-feira, 18 de novembro de 2014 02:52