发布并使用带有SoapHeader的Web服务
服务端代码:
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
public class MyServiceClassHeader : SoapHeader
{
public string UsN;
public string PaW;
};
[WebService(Namespace = "http://localhost/Test4/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class ServiceTest4 : System.Web.Services.WebService
{
public MyServiceClassHeader MSCH;
public ServiceTest4()
{}
[WebMethod]
[SoapHeader("MSCH", Direction = SoapHeaderDirection.In)]
public string Login()
{
if( MSCH != null)
{
if (MSCH.MustUnderstand)
{
string UserName = MSCH.UsN;
string PassWord = MSCH.PaW;
if (UserName == "wenziyan" || PassWord == "811208")
{
return "登录成功!";
}
else
{
return "登录失败!";
}
}
else
{
return "消息头不是必读的!";
}
}
else
{
return "没有头消息!";
}
}
}
客户端代码:
static void Main(string[] args)
{
MyTest4.MyServiceClassHeader MyHeaer = new MyTest4.MyServiceClassHeader();
MyTest4.ServiceTest4 service = new MyTest4.ServiceTest4();
string userName = "wenziyan";
string passWord = "811208";
MyHeaer.UsN = userName;
MyHeaer.PaW = passWord;
MyHeaer.MustUnderstand = true;
service.MyServiceClassHeaderValue = MyHeaer;
string flag = service.Login();
Console.WriteLine(flag);
}
注意:客户端调用时候必须首先设置web service代理类的头并且为其赋值后再调用他的方法。至于是先绑定还是先赋值没有关系。
posted on 2007-01-25 17:04 像大海一样...... 阅读(676) 评论(0) 收藏 举报
浙公网安备 33010602011771号