1。定义自己的soapheader的派生类
///<summary>
///定义自己的soapheader的派生类
///</summary>
? ? public class Mysoapheader : System.Web.Services.Protocols.SoapHeader
? ? {
? ? ? private string _UserID = string.Empty;
? ? ? private string _PassWord = string.Empty;
? ? ? public Mysoapheader()
? ? ? { }
? ? ? public Mysoapheader(string nUserID,string nPasswWord)
? ? ? { Initial(nUserID,nPasswWord);?
? ? ? }
? ? ? public string UserID
? ? ? { get { return _UserID; }
? ? ? ? ? set { _UserID = value; }
? ? ? }
? ? ? public string PassWord
? ? ? {
? ? ? ? ? get { return _PassWord; }
? ? ? ? ? set { _PassWord = value; }
? ? ? }
? ? ? readonly
? ? ? ?private void Initial(string nUserID,string nPasswWord)
? ? ? {
? ? ? ? ? UserID = nUserID;
? ? ? ? ? PassWord = nPasswWord;
? ? ? }
? ? ? private bool IsValid(string nUserID,string npassWord,out string nMsg)
? ? ? {
? ? ? ? ? nMsg = "";
? ? ? ? ? try
? ? ? ? ? {
? ? ? ? ? ? ? if(nUserID == "admin" && npassWord == "admin")
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? ? }
? ? ? ? ? ? ? else
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? nMsg = "对不起你无权此Web服务。";
? ? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ? catch
? ? ? ? ? {
? ? ? ? ? ? ? nMsg = "对不起你无权此Web服务。";
? ? ? ? ? ? ? return false;
? ? ? ? ? }
? ? ? }
? ? ? public bool IsValid(out string nMsg)
? ? ? {
? ? ? ? ? return IsValid(_UserID,_PassWord,out nMsg);
? ? ? }
? ? }
2.添加给予SoapHeader 验证的WebService接口方法
?/// <summary>
? ? /// Summary description for DownloadOrders
? ? /// </summary>
? ? [WebService(Namespace = "http://shop.jnby.com",Name="订单信息")]
? ? [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
? ? [System.ComponentModel.ToolboxItem(false)]
? ? // To allow this Web Service to be called from script,using ASP.NET AJAX,uncomment the following line.?
? ? ?[System.Web.Script.Services.ScriptService]
? ? public class DownloadOrders : System.Web.Services.WebService
? ? {
? ? ? //声明Soap头实例
? ? ? ? public Mysoapheader myHeader=new Mysoapheader();
? ? ? ? ? ? [SoapHeader("myHeader")]
? ? ? ? ? ? [WebMethod(Description = "获取退货单及退货单列表")]
? ? ? ? ? ? public List<Order2> GetReturnOrderItems( DateTime time,string valilate)
? ? ? ? ? ?{
? ? ? ? ? ? ?return null;
? ? ? ? ? ?}
}
3.客户端调用
service1.MySoapHeader header=new service1.MySoapHeader();
header.PassWord="admin";
header.UserID="admin";
service.MySoapHeaderValue=header;
?IList<Order2> order=service.GetReturnOrderItems("","");