在winform中从Web服务发送和接收数据

时间:2013-09-03 06:27:07

标签: c# winforms web-services wsdl

我编写了一个WinForm应用程序,它应该使用Web服务来检索所需的信息。 地址为this

我在这里和msdn中阅读了一些文章,并且还为我的项目添加了服务引用,但是当我想使用我不能使用的方法时。

现在我感到困惑。我需要向服务发送用户名和密码,在验证发送ID后,Web服务发回相应的信息,然后我需要发回我收到的日志。可以通过WinForm吗?我该怎么办?

某些示例代码或参考将被适用。

1 个答案:

答案 0 :(得分:0)

添加新的Web Service Application项目(名称设置为SoapHeaderAuth)并添加代码,如下所示

 using System;
 using System.Web;
 using System.Web.Services;
 using System.Web.Services.Protocols;
 using System.Configuration;
 [WebService(Namespace ="www.XMLWebServiceSoapHeaderAuth.net")
 ][WebServiceBinding(ConformsTo =WsiProfiles.BasicProfile1_1)]
 public class Service:System.Web.Services.WebService
  {
     public AuthSoapHd spAuthenticationHeader;

     public Service()
       {
       }

    public class AuthSoapHd: SoapHeader
    {
      public string strUserName;
      public string strPassword;
    }

      [WebMethod,SoapHeader("spAuthenticationHeader")]
    public string HelloWorld()
    {
     if (spAuthenticationHeader.strUserName =="TestUser" &&
       spAuthenticationHeader.strPassword =="TestPassword")
     {
       return "User Name : " +spAuthenticationHeader.strUserName + " and " +
       "Password : " +spAuthenticationHeader.strPassword;
     }
     else
     {
       return "Access Denied";
     }
  }
 }

将Web引用添加到上述Web服务应用程序,在“添加Web引用”对话框中将Web引用名称指定为localhost。接下来,将以下代码粘贴到Client中,该代码可以是窗体或Web应用程序。

     localhost.Service objWebService = newlocalhost.Service();
     localhost.AuthSoapHd objAuthSoapHeader = newlocalhost.AuthSoapHd();

     string strUsrName ="your usernmaen"
     string strPassword ="Your password"

     objAuthSoapHeader.strUserName = strUsrName;
     objAuthSoapHeader.strPassword = strPassword;

     objWebService.AuthSoapHdValue =objAuthSoapHeader;
    string str = objWebService.HelloWorld();