大致可分为下面几种:
(1)身份验证和属性控制,可以集成Windows验证、域服务器验证、.Net?Passport验证。
(2)IP域名限制,只允许特定的ip或者域内机器访问,对非法的请求进行过滤,
(3)安全通信设置,用户可以启用Web服务器证书,采用SSL对网络传递的信息进行加密,来保证Web?Service的安全。
Windows验证、域服务器验证、IP域名限制?归为一类,对访问者进行限定,通常用在内网应用中。
.Net?Passport验证?如果不和?SSL?一起用,只相当于验证码的安全级。
SSL?就是?Https。
安全等级从底到高为?1324
1)仅与用户相关,每次登录的信息都是一样的,被截获后可以直接利用。
3)由于增加了与会话相关的随机数(验证码),增加了一定难度,但是明文数据还是可以解析的。
2)通过加密基本防止了直接伪造数据包的可能。
4)以上3种都不能防止密码被窃取的情况,但是用加密狗验证就多了一道保险,毕竟窃取硬件要难得多。
以上方法按照需要组合起来用的。
例子一:
使用SoapHeader传递和验证用户?
?Web?Service端的代码:?
?1.1先创建一个继承自System.Web.Services.Protocols.SoapHeader?
????CredentialSoapHeader类:?
???public?class?CredentialSoapHeader?:?SoapHeader?
???{?
?private?string?_userName?;?
?private?string?_userPassword?;?
?public?string?UserName?
?{?
??get?{?return?_userName?;?}?
??set?{?_userName?=?value?;?}?
?}?
?public?string?UserPassword?
??get?{?return?_userPassword?;?}?
??set?{?_userPassword?=?value?;?}?
???}?
通过SOAP?Header身份验证
验证票
using?System.Web.Security?;?
[WebMethod()]?
public?string?GetAuthorizationTicket(string?userName?,?string?password)?
{?
?????FormsAuthenticationTicket?ticket?=?new?FormsAuthenticationTicket(userName,?false,?timeOut)?;?
?????string?encryptedTicket?=?FormsAuthentication.Encrypt(ticket)?;?
?????Context.Cache.Insert(encryptedTicket,?userName,?null,?DateTime.Now.AddMinutes(timeout),?TimeSpan.Zero)?;?
?????return?encryptedTicket?;?
}?