思路: web服务使用虽然方便,但安全是个问题,在企业开发中,经常面临多界面的客户端,使用你的服务的可能是个桌面程序也可能是个移动应用,这就要求集中的身份验证,而web服务来做这个事情是最合适不过的。我们先来用一个UserLoginInfo来保存登陆用户的令牌(token),主机地址(host)和安全上下文(IPrincipal),当然了真实环境中这些东西肯定应该是保存在数据库中的,然后写个sql job来定时清理过时的令牌。我们首先要写个身份验证的web服务(AuthenticateService.asmx),此服务用来进行身份验证,令牌检测,用户注销,获取安全上下文等功能。然后我们要开发一个业务服务的基类(ServiceBase.cs),因为调用每个业务服务的时候要保证这个调用是授权的,所以有好多共性的东西,所以我们提取一个基类出来,它主要有验证令牌,角色检验,注销等方法。因为web服务是无状态的,所以我们要用SOAP头来传递令牌,这样我们要定义一个tokenHeader的SOAP头,并把它声明在每个需要身份验证的web方法前。这样你就可以开发你的安全的业务服务了。 br Read More
posted @ 2006-08-16 09:03 蛙蛙王子 Views(3007) Comments(8) Diggs(1) Edit