1、创建一个新的类。如"AuthHeaderUser",在传承"System.Web.Services.Protocols.SoapHeader"类别
2、新WebService,有一个AuthHeaderUser物业类型
3、新WebService一Web方法,指定Soap头信息,如:
[SoapHeader("AuthenticationUser")][WebMethod(Description="返回股票行情信息")]public DataSet GetQuotedPrice(){ if (AuthenticationUser != null) //step4,验证Soap头是否为空{ //验证WebServiceSoapHeaderAuthentication.DAL.LoginResult lr =new WebServiceSoapHeaderAuthentication.DAL.UserDAL().Login(AuthenticationUser.UserId, AuthenticationUser.Password);if (lr == LoginResult.Succeed)//登录成功return new WebServiceSoapHeaderAuthentication.DAL.QuotedPriceDAL().GetQuotedPriceDataset();elsethrow new ApplicationException("Log in failed : " + lr.ToString());}elsethrow new SoapHeaderException("......", SoapException.ClientFaultCode);}4、client引用:
//Web服务localhost1583QuotedPriceService.QuotedPriceService service =new WebServiceSoapHeaderAuthentication.QuotedPriceViewForm.localhost1583QuotedPriceService.QuotedPriceService();//准备Soap头
WebServiceSoapHeaderAuthentication.BOL.User u = CurrentUser.getInstance();localhost1583QuotedPriceService.AuthHeaderUser login_user =new WebServiceSoapHeaderAuthentication.QuotedPriceViewForm.localhost1583QuotedPriceService.AuthHeaderUser();login_user.UserId = u.UserId;login_user.Password = u.UserPassword;//Soap第一项任务
service.AuthHeaderUserValue = login_user;DataSet ds = service.GetQuotedPrice();
//todo:......5、完成