yxh1122

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

webservice不存在使用cookie进行验证的方式,为了能够控制webservice的访问权限需要为相应的webservice方法添加相应的验证方式,方法是可以给webservice添加相应的soapheader,每次调用此webseivice方法的时候经过相应的用户验证。
        首先为webservice创建一个验证时传递的soapheader类,定义好需要传递的验证信息,比如用户名密码等,
如:
 public class HeaderUserSoapHeader : SoapHeader
    {
        private string m_username;
        private string m_password;

        public string Username
        {
            get
            {
                return m_username;
            }

            set
            {
                m_username = value;
            }
        }

        public string Password
        {
            get
            {
                return m_password;
            }

            set
            {
                m_password = value;
            }
        }
    }
然后定义一个soapheader的属性对象,比如
        private HeaderUserSoapHeader headerUser;
        public HeaderUserSoapHeader HeaderUser
        {
            get
            {
                return headerUser;
            }
            set
            {
                headerUser = value;
            }
        }
相应需要验证的webservice方法前添加SoapHeader属性声明,并且在相应的webservice方法中添加验证方法,
        [SoapHeader("HeaderUser")]
        public string HelloWorld()
        {
            Authenticat();//用户验证方法
            return "Hello World";
        }
        private void Authenticat()
        {
            if (this.HeaderUser == null || this.HeaderUser.Username == null || this.HeaderUser.Password == null)
            {
                throw new SoapException("User Denined!", SoapException.ClientFaultCode, "Security");
            }
        }
如此,编译此webservice,便可以通过soapHeader来传输验证消息了

posted on 2006-09-05 17:00  .NET易拉罐  阅读(1624)  评论(0)    收藏  举报