我编写了一个WinForm应用程序,它应该使用Web服务来检索所需的信息。 地址为this:
我在这里和msdn中阅读了一些文章,并且还为我的项目添加了服务引用,但是当我想使用我不能使用的方法时。
现在我感到困惑。我需要向服务发送用户名和密码,在验证发送ID后,Web服务发回相应的信息,然后我需要发回我收到的日志。可以通过WinForm吗?我该怎么办?
某些示例代码或参考将被适用。
答案 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();