webservice验证
来源:互联网 发布:SQL server 错误9002 编辑:程序博客网 时间:2024/05/17 16:54
解决方案一:通过通过SOAP Header身份验证。
1.我们实现一个用于身份验证的类,文件名MySoapHeader.cs
MySoapHeader类继承自System.Web.Services.Protocols.SoapHeader。且定义了两个成员变量,UserName和PassWord,还定义了一个用户认证的函数ValideUser。它提供了对UserName和PassWord检查的功能
2.下面我们创建WebService.asmx WebService.cs代码如下:
3.客户端 创建个Default.aspx
Default.aspx .cs代码
解决方案二:通过集成windows身份验证。
1. 将web服务程序设为集成windows身份验证 取消匿名访问
2.客户端web引用代码
Test.WebReference.Service1 wr = new Test.WebReference.Service1(); //生成web service实例
wr.Credentials = new NetworkCredential("guest","123"); //guest是用户名,该用户需要有一定的权限
lblTest.Text = wr.Add(2,2).ToString(); //调用web service方法
该方案的优点是比较安全,性能较好,缺点是不便于移植,部署工作量大。
在项目开发,我们经常会使用WebService,但在使用WebService时我们经常会考虑以下问题:怎么防止别人访问我的WebService?从哪里引用我的WebService?对于第一个问题,就涉及到了WebService是安全问题,因为我们提供的WebService不是允许所有人能引用 的,可能只允许本公司或者是通过授权的人才能使用的。那怎么防止非法用户访问呢?很容易想到通过一组用户名与密码来防止非法用户的调用 。
在System.Net中提供了一个NetworkCredential,通过它我们可以在网络中提供一个凭证,只有获得该凭证的用户才能访问相应的服务的权限。在这里我们也使用NetworkCredential。在NetworkCredential中,我们通过提供WebService发布所在的服务器名称,以及登录服务器并调用该WebService的用户名及密码(在IIS中配置)。
在调用WebService时设置其Credential属性,把上面得到的Credential凭证赋值给它,这样只有使用提供的用户名及密码才能调用WebService服务了而其他用户则无法访问,这样就能能满足防止WebService被别人调用了。
至于主机名,用户名及密码,对于B/S可以通过webconfig来配置,对于C/S可以使用应用程序配置文件。这样就能灵活地配置了。
如下以C/S为例来说明,首先我们提供一个服务器网络凭证,然后通过WebRequest来验证连接是否成功。当然了,为了保存用户名与密码等的安全,可以对其进行加密等手段来保证其安全。
作者:chhuic
出处:http://chhuic.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
- webservice验证
- webservice验证
- Webservice验证
- webservice的验证
- webservice的验证
- webservice的验证
- .net中的WebService验证
- webservice的验证
- webService Soap 验证
- webservice用户调用验证
- WebService 加入安全验证
- webservice 安全验证
- webservice 验证失败问题
- webservice的验证 .
- webservice SoapHeader 验证
- webservice安全验证
- WebService通过TSoapHeader验证
- WebService中的用户验证问题
- 在同一个硬盘之中安装windows、linux、solaris三系统的方法
- oracle练习题(mldn视频)一
- PostgreSQL和Oracle用法上的一些区别
- oracle练习(mldn视频)二
- Log4j使用总结
- webservice验证
- oracle练习(mldn视频课程)三
- 常用软件的注册码
- boot.ini文件的查找
- 浅谈C# WinForm中实现基于角色的权限菜单
- 局域網內mysql如何遠端連接mysql資料庫伺服器
- linux中删除oracle的方法
- [PKU 1830]关灯问题(高斯消元)
- Oracle内置角色connect与resource的权限