博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SoapHeader的使用
阅读量:4991 次
发布时间:2019-06-12

本文共 2902 字,大约阅读时间需要 9 分钟。

自定义类继承SoapHeader用户在webservice表头传递凭据

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services.Protocols;namespace FormsAuth.WebService{    public class SoapHeaderCredential:SoapHeader    {        private string strUserName = string.Empty;        private string strPassWord = string.Empty;        public SoapHeaderCredential() { }        public SoapHeaderCredential(string username, string password)        {            this.strUserName = username;            this.strPassWord = password;        }        #region 构造 用户名|密码        ///           /// 用户名          ///           public string UserName        {            get { return strUserName; }            set { strUserName = value; }        }        ///           /// 密码          ///           public string PassWord        {            get { return strPassWord; }            set { strPassWord = value; }        }        #endregion    }}

添加接口IWebService

public interface IWebService{      SoapHeaderCredential HeaderCredential { get; set; }}

添加webservice实现IWebService接口

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;using System.IO;using System.Xml.Serialization;using System.Text;using System.Web.Services.Protocols;namespace FormsAuth.WebService{    ///     /// WebService1 的摘要说明    ///     [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    [System.ComponentModel.ToolboxItem(false)]    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。    // [System.Web.Script.Services.ScriptService]    public class WebService1 : System.Web.Services.WebService, IWebService    {        [WebMethod]        [SoapHeader("HeaderCredential")]        public string HelloWorld()        {            SpSoapHeader.CheckLogin(this);            return "hello word";        }        #region IWebService 成员        public SoapHeaderCredential HeaderCredential        {            get;            set;        }        #endregion    }}
SpSoapHeader用户验证
public class SpSoapHeader    {        ///           /// 检测是否正确登录          ///           /// 
public static bool CheckLogin(IWebService service) { if (!(service.HeaderCredential.UserName == "user" && service.HeaderCredential.PassWord == "pass")) { throw new SoapException("Audit Fail", SoapException.ClientFaultCode, "Security"); } return true; } }

在客户端引用webservice,实例化webservice时制定凭据

WebReferences1.WebService1 client = new FormClient.WebReferences1.WebService1();WebReferences1.SoapHeaderCredential header = new FormClient.WebReferences1.SoapHeaderCredential();header.UserName = "user";header.PassWord = "pass";client.SoapHeaderCredentialValue = header;string ss = client.HelloWorld();

 

 

转载于:https://www.cnblogs.com/xingbinggong/archive/2013/04/23/3037984.html

你可能感兴趣的文章
26. Remove Duplicates from Sorted Array
查看>>
RN开发-Navigator
查看>>
innodb二进制文件相关的参数
查看>>
前谷歌高管给初入职场新人的14条忠告
查看>>
01-html介绍和head标签
查看>>
Python之Linux下的 virtualenv
查看>>
ASP.NET Web开发框架之三 报表开发
查看>>
大家好
查看>>
PHP文件上传类
查看>>
Python基础 --- 使用 dict 和 set
查看>>
仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)
查看>>
Python之数据结构基础
查看>>
WPF:如何高速更新Model中的属性
查看>>
hdu 1010(DFS) 骨头的诱惑
查看>>
(转)Android SDK Manager国内无法更新的解决方案
查看>>
SQL语句修改表
查看>>
ubutnu 挂载磁盘
查看>>
continue 和 break的实例
查看>>
Java学习笔记()ArrayList
查看>>
redis缓存清除
查看>>