WebService的几种验证方式.doc
文本预览下载声明
WebService的几种验证方式
1.1??????WebService
1.1.1???传输基本参数
1.1.2???传输数据集合
(1)?????
(2)?????DataSet
1.2??????WebService
1.3??????WebService性能
1.4??????WebService认证
?请参考WebService认证学习报告
1.4.1???各种认证方式
??????Windows认证
(1)???IIS中WebService文件的权限为集成Windows认证
(2)???Web.Config
authentication mode= Windows
/authentication
?
?
1.4.2???跟踪用户访问
1.5??????WebService调用
1.5.1???Windows认证
(1)???NTCredentials必须指定System.Net.CredentialCache.DefaultCredentials
当设置为default时,客户端根据服务端配置决定采用NTLM认证还是其他的安全认证
(2)???WebService对象
(3)???WebService认证信息
(4)???WebService方法
??????????? LocalTest.GIISService localTest = new LocalTest.GIISService();
??????????? CredentialCache credentialCache = new CredentialCache();
??????????? NetworkCredential credentials = new NetworkCredential(XuJian, password, Snda);
??????????? credentialCache.Add(new Uri(http://localhost/GIIS/ GIISService.asmx),
??????????????????????????????? Basic, credentials);
??????????? localTest.Credentials = credentialCache;
??????????? string tt = localTest.Hello(ssssssss);
1.6??????GIIS中WebService认证实现
该部分为本次GIIS中实现的认证方式,考虑到相关配置、维护性,不涉及其他认证方式的处理
1.6.1???实现方式
?SOAP Header + DES加解密?+ Windows认证
1.6.2???实现原理
(1)???SOAP Header
SOAP?SOAP封装(envelop),定义描述消息
SOAP编码规则
?????????????????????????????????? SOAP RPC调用和应答协定
?????????????????????????????????? SOAP绑定,底层协议交换信息
其中envelop由一个或多个Header和一个Body组成,Header元素的每一个子元素称为一个SOAP Header
(2)???DES
通过Client端传输过来的已加密编码,在客户端进行解码分析,实现认证,认证的user信息来自于GIIS的系统登录用户列表
对编码和解码的字节类型存储在Web.Config文件中,要保持一致并对称,且字符长度需设为8位
(3)???Windows认证
作为域用户可以通过该方式来调用、处理WebService,但非域用户看通过我们自定义的SOAP Header方式来验证
1.6.3???实现步骤(SOAP)
(1)???.asmx文件的访问权限为“集成Windows认证”,不允许匿名访问
(2)???WebService认证类CredentialSoapHeader.cs,继承SoapHeader
*调用者的信息从系统维护的WscUser表中获取
namespace?XXX.WebService
{
????public?class?CredentialSoapHeader : System.Web.Services.Protocols.SoapHeader
牋?{?p
牋牋牋?#region?- Private Attribute --der :
牋牋牋牋private爏tring爉_UserID =爏tring.Empty;System.
牋牋牋牋private爏tring爉_Password =爏tring.Empty;stem.We
牋牋牋?#endregioning爉
?
牋牋牋?#region?- Private Att
显示全部