我对 WCF RESTful 身份验证的实现方式

来源:互联网 发布:手机淘宝模版 编辑:程序博客网 时间:2024/05/10 02:20

RESTful   具体含义请去搜索 ,意味着我们的服务是无状态的,每次调用完全无关的

那么我们怎么保证身份验证呢?

一般这类服务都是提供给别人调用(一般是 第三方系统 ),或者叫做应用程序编程接口 (api) 随便叫吧,就这么个意思

假如我有一个服务地址为  www.a.com/aservice/   

提供给别人的登录名 为   system1     密码 为   abedeffffff    

1---提供签到服务(相当于登录,这里的传输安全问题未考虑)(因为这里使用 用户名和密码 + ip验证,可以暂时不考虑传输安全,暂时这样吧,没考虑到好的方式)

  比如    www.a.com/signinService      如果签到成功   返回加密字符串(推荐 使用 用户名  对  访问者ip 进行 对称加密),成功之后可以将用户名和 时间戳放到cache中

       签到服务   主要做以下内容

         1) 根据用户传递的用户名和密码,验证 是否正确,(同时服务中判断 是否允许此用户在此ip访问)

          2)如果正确,则返回  使用用户名    对   允许的ip(多个以‘,’ 分割) + 时间戳 进行对称加密的结果  成功之后可以将用户名和 时间戳放到cache中

 3) 之后所有服务则使用此 加密结果进行 

2---当用户签到之后开始调用相关服务 使用 用户名 和 签到的加密字符串

         在服务中获取用户传递过来的加密字符串,使用 用户名  对其进行解密,得到 的ip 和  此次访问服务的ip 进行对比(这里不每次都查询数据,因为效率效率问题暂时想到这种对比方式),如果包含 此次访问的ip即通过,否则不合法,如果限制访问频率, 可以对 解密出来得到的 时间戳 和缓存时间戳 进行对比,限制时间差距后更新cache 的时间戳

0 0
原创粉丝点击