2016-04-30 33 views
0

我试图绑定x509证书并通过客户端的web服务发送数据。 我创建了一个窗口形式的应用程序和使用Microsoft.web.Service3,但是当我在我的本地运行此程序夺冠它给了我这样的错误:身份验证失败:必须签署SOAP身份以进行基于签名的身份验证。没有提供凭证。联系IT SOASvsSupport

验证失败:SOAP体必须基于签名签署 认证。没有提供凭证。联系IT SOASvsSupport。

任何人都可以帮忙吗?

private void btnSubmit_Click(object sender,EventArgs e) string certificateFile = @“C:\ XYZ \ MyTest.cer”;

 System.Security.Cryptography.X509Certificates.X509Certificate x509Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate(certificateFile); 
     //X509Certificate x509Certificate = X509Certificate.CreateFromCertFile(certificateFile); 
     MyTest.DataService rdf = new MyTest.DataService(); 
     RvsDataFeed[] rvs = rdf.GetRvsDataFeed(); 
     txtXml.Text = ""; 

     if (rvs != null) 
     { 
      foreach (RvsDataFeed rvsdata in rvs) 
      { 

       try 
       { 

        TrackingRequest wbttreq = new TrackingRequest(); 
        ClientType cit = new ClientType(); 


        cit.requestorAppName = "MMM"; 
        cit.requestorUserName = rvsdata.ID; 
        wbttreq.ClientInfo = cit; 


        ClientWSDL.DataUtility xyzWSDL = new ClinetWSDL.DataUtility(); 
        xyzWSDL.Url = "http://xyz.xy"; 

        xyzWSDL.ClientCertificates.Add(x509Certificate); 

        txtXml.Text = txtXml.Text + Environment.NewLine + SerializeToString(td); 

        TrackingResponse res = new TrackingResponse(); 
        xyzWSDL.WriteBack(wbttreq); 

        rdf.LogRvsDataFeedSent(rvsdata.DataFeedID); 

       } 
       catch (Exception ex) 
       { 
        txtXml.Text = txtXml.Text + Environment.NewLine + ex.Message; 
       } 


      } 
     } 

    } 
+0

您需要为其他人提供足够的信息来复制问题。阅读[this](http://stackoverflow.com/help/how-to-ask)。 – MikeJRamsey56

回答

0

私人无效btnSubmit_Click(对象发件人,EventArgs的) { 串certificateFile = @ “C:\ XYZ \ MyTest.cer”;

 System.Security.Cryptography.X509Certificates.X509Certificate x509Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate(certificateFile); 
     //X509Certificate x509Certificate = X509Certificate.CreateFromCertFile(certificateFile); 
     MyTest.DataService rdf = new MyTest.DataService(); 
     RvsDataFeed[] rvs = rdf.GetRvsDataFeed(); 
     txtXml.Text = ""; 

     if (rvs != null) 
     { 
      foreach (RvsDataFeed rvsdata in rvs) 
      { 

       try 
       { 

        TrackingRequest wbttreq = new TrackingRequest(); 
        ClientType cit = new ClientType(); 


        cit.requestorAppName = "MMM"; 
        cit.requestorUserName = rvsdata.ID; 
        wbttreq.ClientInfo = cit; 


        ClientWSDL.DataUtility xyzWSDL = new ClinetWSDL.DataUtility(); 
        xyzWSDL.Url = "http://xyz.xy"; 

        xyzWSDL.ClientCertificates.Add(x509Certificate); 

        txtXml.Text = txtXml.Text + Environment.NewLine + SerializeToString(td); 

        TrackingResponse res = new TrackingResponse(); 
        xyzWSDL.WriteBack(wbttreq); 

        rdf.LogRvsDataFeedSent(rvsdata.DataFeedID); 

       } 
       catch (Exception ex) 
       { 
        txtXml.Text = txtXml.Text + Environment.NewLine + ex.Message; 
       } 


      } 
     } 

    } 
+0

这是测试代码 – mpatel