大致可分为下面几种:
(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 ;
}