4

我正在尝试使用演示网址如下的服务

[https://demo.unicommerce.com/services/soap/uniware13.wsdl?facility=01][1]

当我添加此服务并尝试在我的代码中使用它时,如下所示

using abc;
public partial class unicommerce : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        unicommerce u = new unicommerce();

        UnicommerceClient us = new UnicommerceClient();


        Customer c=new Customer ();
        PartyAddress pa=new PartyAddress ();
        pa.StateCode="25";
        pa.Pincode="302017";
        c.BillingAddress=pa;
        PartyContact p=new PartyContact ();

        c.Contact=p;
        c.CSTNumber="123";
        c.CustomerCode="ABC";
        c.Name="example";
        c.PAN="CYKPS7842";
        c.Website="http://mywebsite.in";

        CreateCustomerRequest cr = new CreateCustomerRequest();
        cr.Customer = c;
        us.CreateCustomer(cr);

    }
}

它的投掷错误

No WS-Security header found

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ServiceModel.FaultException: No WS-Security header found
  [1]: https://demo.unicommerce.com/services/soap/uniware13.wsdl?facility=01

我询问了提供此服务的人,他对我说,此服务是使用 java 代码快速创建的。

据我所知,这个错误与用户名和密码(身份验证)有关,但没有得到我应该在哪里传递这些凭据。

4

2 回答 2

2

您可以使用来自 Microsoft.Web.Services2 的标准 .Net WSS 实现

using Microsoft.Web.Services2.Security.Tokens;
using Microsoft.Web.Services2.Security.Utility;

UsernameToken token = new UsernameToken(username, password, passwordOption.SendHashed);          

Microsoft.Web.Services2.Security.Utility.Timestamp ts = new Timestamp();

XmlDocument doc = new XmlDocument();

XmlElement token = token.GetXml(doc);
XmlElement timestamp = ts.GetXml(doc);

string stoken = token.InnerXml;
string stimestamp = ts.InnerXml;

等等,完美运行。

Microsoft.Web.Services2.dll 可以在这里找到:

http://www.microsoft.com/downloads/details.aspx?FamilyId=FC5F06C5-821F-41D3-A4FE-6C7B56423841&displaylang=en

于 2013-06-18T08:28:47.653 回答
1

您必须知道与 Web 服务通信的安全要求,然后将安全标头添加到您的代码中检查示例here

于 2013-06-18T06:00:06.937 回答