惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
博客园 - 司徒正美
C
Check Point Blog
G
Google Developers Blog
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
IT之家
IT之家
B
Blog
博客园_首页
量子位
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
J
Java Code Geeks
H
Help Net Security
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
D
DataBreaches.Net
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News

博客园 - .NET易拉罐

MySQL性能优化的21个最佳实践 和 mysql使用索引(转) InnoDB锁问题 mysql锁表监控 postgresql的表导入数据后 主键值重复的解决 胃病验方 POSTGRESQL学习----函数返回结果集 利用winapi从dll资源中加载对话框 openh323的视频捕获原理 vs2003 + wxWidGets进行c++开发的环境配置 使用php-5.2.1-win32安装包配置iis+mysql运行环境 windows2003中asp网站配置问题 OpenVpn的服务器端的ip配置问题 - .NET易拉罐 JavaScript操作Cookie 双击驱动器无法打开的问题解决方法 让IIS服务器支持中文文件名 XPath手册 web应用程序bin目录下的dll无法加载问题解决方法 关于系统进程lsass.exe的病毒问题 使用微软的webservice.htc组建访问webservice
给webservice方法添加soapHeader
.NET易拉罐 · 2006-09-05 · via 博客园 - .NET易拉罐

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来传输验证消息了