WebService之Soap頭驗證入門

一、新建一個類,如"AuthHeaderUser",繼承於"System.Web.Services.Protocols.SoapHeader"類orm

二、新建WebService,有一個AuthHeaderUser類型的屬性繼承

三、新建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();
else
throw new ApplicationException("Log in failed : " + lr.ToString());
}
else
throw new SoapHeaderException("......", SoapException.ClientFaultCode);
}ip

四、client引用:
//Web服務
localhost1583QuotedPriceService.QuotedPriceService service =
new WebServiceSoapHeaderAuthentication.QuotedPriceViewForm.localhost1583QuotedPriceService.QuotedPriceService();get

//準備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;io

//Soap頭賦值
service.AuthHeaderUserValue = login_user;class

DataSet ds = service.GetQuotedPrice();
//todo:......登錄

五、完畢cli

相關文章
相關標籤/搜索