首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

如何做WebService身份验证

2013-03-27 
怎么做WebService身份验证本帖最后由 jjoulejcc 于 2013-03-03 09:35:24 编辑假设服务端提供了一个方法of_

怎么做WebService身份验证
本帖最后由 jjoulejcc 于 2013-03-03 09:35:24 编辑 假设服务端提供了一个方法of_ExecuteSql(String as_sql),这个方法很简单,就是执行一条SQL,然后返回是否执行成功的标记。那么在这个方法中,肯定得先验证用户的合法性吧,假设有一个表Users(UserId,Password),则of_ExecuteSql大概就应该这样写:


boolean of_ExecuteSql(String as_sql, String as_UserId, String as_password)
{
    // 使用as_UserId和as_password验证用户合法性
    if 非法用户 then
        return false
    else
        // 执行SQL
        ......
    end if
}

那么是不是所有的服务端方法我都得把用户ID和密码作为参数传进去呢,比如:
of_GetData(..., String as_UserId, String as_password)
of_Update(..., String as_UserId, String as_password)
感觉这样写很麻烦,不知道大家有什么好的方法,说出来交流下 webservice 身份验证
[解决办法]
照理是这样的。
可以定义一个用于传送用户名和密码的结构,在WS方法里将其作为参数传入。
[解决办法]
晕,我进了PB版面,我还以为自己在.NET版呢,不过你还是用WCF吧,WCF里面的功能很全的,认证功能已经包含了
[解决办法]
BS与CS的不同之处,在于BS是无状态连接,下一个连接你不知道它是不是合适
所以一般http,都会使用cookie来进行认证.说白了,就靠保存在本地的cookie来识别每一次的连接是否是合法的

于是,可以借鉴这个思路,每当登录成功后,就分配一个唯一的标识给客户端,当要调用webservice的函数时,参数里带上该标识,用于服务端代码进行识别.

我现在是使用uuid进行标识.每一次登记成功,就分配一个uuid,并返回给客户端.该uuid会登记在数据库里进行识别.需要对uuid进行超时判断,如果超时,就在数据库里清掉该uuid,并有客户端提示"非法",让操作员重新登录系统.

热点排行