欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 683

点击:1509

[顶层访客留言] [回复顶层(需要先登录)] [表状] [简明]


文章数: 20
积分: 200
注册时间: 2009/11/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章id: 683
感谢,谢老师的支持与提醒。

作者: 精灵


以下是引用 xietao 于 2011-11-3 16:22:36 发表的文字:

谢谢精灵把自己的心得体会写出来,与大家分享。

关于读者帐户没有密码而可能导致隐私泄露问题,绝不是空穴来风。我们对隐私和安全问题应当抱有严肃的态度。江汇泉曾经提出过这个问题,并且给出了一定的解决办法建议就是读者记录创建的时候其初始密码可以采用姓名拼音或者生日或者几个字段的内容的组合。

当时我觉得解决办法还不太成熟,也想听听用户单位的意见;另外我们的系统以灵活和可以配置为傲,我一直在想是不是可以用一个二次开发脚本函数来定制这个缺省密码的功能,但又觉得动用脚本函数是不是有些牛刀了,也要考虑大部分用户单位对于管理的简便性的要求 ---- 于是在纠结和试图平衡的过程中时间就流逝了。

我想,是不是还是尽早把这个缺省密码的功能,也可以做出来再改进,不过那样就有可能带来用户的一些颠簸了 --- 可能要跟着把配置文件改来改去。

即便是解决了缺省密码的问题,但是那些以前创建的没有密码的读者记录怎么办呢?怎么给它们加上密码?那么精灵编写的这个统计方案还是有现实意义的。可以认为是缺省密码机制的一个补充。

但,目前这个统计方案还需要通用化以后,才能作为公司推荐的统计方案放在网站上,提供给所有用户单位使用。我建议可以设定一些预定义的动作类型,比如采用生日字符串,采用姓名拼音,采用其他什么字段来填入密码。

(顺便悄悄问一句:有拼音字段么,读者记录中?)

这样使用这个统计方案的操作者就可以选用预定义的动作来执行了。

~~~

我前两天还在琢磨,精灵同志将怎样在程序中判断一个读者记录有没有密码呢?

看了今天的代码,我不得不解释一下了。精灵所采用的判断元素的值是否为空的办法,是可以用的,但是理论上不严密。

为什么呢?因为读者记录中这个元素中存储的是读者密码的hash码,而“空”密码hash以后可不是空哟!当然恰好现在的dp2library服务器程序在创建读者记录的时候让元素内容是空,这是一个巧合。理论上说,元素内容是空,或者是“空”的hash码,两种情况都算空。

那么这个“空”的hash码是什么呢?这,就是天机不可泄漏了。hash码的用意就是不要你知道,故意扰乱的。我们就不要沿着这个方向去走了。

可以改换方向思考。在dp2circulation的出纳窗中,有一种校验读者密码的方式,那么肯定dp2circulation前端采用了什么API调用来验证读者密码的。我们可以使用这个API来,验证一下读者的密码是不是空。这个方法最好,因为这个API是系统提供的,有足够的可靠性和稳定性,我们作为二次开发者就不必操心那些hash码之类的事情了。

 

这个校验读者密码的API的类型是:

long VerifyReaderPassword(Stop stop, string strReaderBarcode, string strPassword, out strError)

返回-1是出错,返回0是校验不匹配,返回1是匹配。

调用这个API,需要当前用户具有verifyreaderpassword的权限。如果是读者类型的帐户,则只能校验自己的密码,不能校验其他人的密码。

希望精灵可以试一试用这个函数判断读者当前是否有了密码。

当然,这个API和其他API一样,是在Channel里面的一个函数,调用时形态如下:

long lRet = this.ReaderStatisForm.Channel.VerifyReaderPassword(

null, // stop,

strReaderBarcode, // 读者证条码号

"", // 要检测的密码

out strError);

    感谢谢老师的支持与提醒。呵呵。。我一直以为空密码仅仅是<password></password>中的内容为空。其实以前我也观察过在使用“内务”-》“文件菜单”中的“修改密码窗”,修改读者的密码为空后在“读者窗”中的“XML”标签下的确观察到了<password></password>中的确还有字符串存在,但是当时由于,在查询机上测试正常(修改后读者没有填写密码就可以登陆查询机)我就一直以为是我没有刷新读者显示数据造成这种显现的,所以,我就没再深究这个细节。呵呵。。。。。今天看到谢老师的帖子才明白过来。呵呵。。。感谢谢老师的提醒,回头我就修改一下这个脚本。。。。呵呵。。。。

    对于设置读者的初始密码我在这方面经验不多,呵呵。。。。我在这里仅仅是谈谈我个人的看法,不一定对,呵呵。。如果有不当的地方,还望各位老师切勿见笑,我个人感觉无论是什么密码都得满足这么一点条件。就是密码中的字符毫无逻辑性、关联性。如果说密码有逻辑性或者是关联性,那么一旦被有心人看出来,就很容易破解。如果按照这个想法去想的话,那么符合以上条件的只有随机数。我们可以随机生成一组数字或者是随机生成一组数字与字母的组合,这样,就可以就完全满足以上的条件了(其实采用随机数的方式,是在跟江老师聊读者初始密码的时候,江老师想到的。呵呵。。)。但是,接着还会面临一个小问题,就是如何通知读者,而且还得是一对一的通知读者,这时候,我想到了两种方式,第一种是手机短信,把密码通过短信的形式发送给读者。但是,需要系统有短信接口,并且,图书馆还得具备全网段短信发送的能力。这个要求对于系统或者对于图书馆而言,有点高。呵呵。。接着我又想到了第二种方式,邮件。。。。。系统可以通过邮件的方式发送给读者密码,但是,这也要求系统有邮件发送功能(这个目前系统已经达到了),另外还得要求图书馆有自己的邮件服务器,虽然相比上面那种具有全网段短信发送能力的要求而言,已经降低很多了,但是,这个要求感觉还是有点高,那么我们能不能这样做,图书馆导入读者信息,读者在第一次登录的时候,如果读者没有初始密码,那么读者需要再填写一遍图书馆所导入的读者本身的个人信息,让系统自动核对,如果核对无误,系统就显示出一组随机字母与数字的组合作为读者的初始密码(盗用一下江老师在上面谈到的想法。呵呵。。)。但是,如果这么做的话也有一个小问题,如果图书馆导入的读者信息是错误的,那么这个读者可能将无法获取自己的初始密码,他还得跑到图书馆工作台前,让图书馆的老师手动修改一下自己的密码。这样我感觉似乎是在无形中增加了读者登陆“OPAC”的成本。。呵呵。。。。。以上是个人感觉,不一定准确。。。。。



发表时间: 2011-11-04 09:04:18
最后修改时间: 2011-11-04 09:22:40
  • 精品 批量修改读者密码 精灵 2011-11-03 15:59:53[点击:65079]
  • 普通文章 关于修改密码的一些补充意见 xietao 2011-11-03 16:22:36 (ID:680) [点击:1022]
  • 普通文章 感谢,谢老师的支持与提醒。 精灵 2011-11-04 09:04:18 (ID:683) [点击:1509]
  • 普通文章 _ xietao 2011-11-03 16:37:52 (ID:681) [点击:1106]
  • 普通文章 回复: 精灵 2011-11-04 09:26:32 (ID:684) [点击:1419]
  • 普通文章 回复: 回复: xietao 2011-11-04 12:11:28 (ID:685) [点击:1007]
  • 普通文章 感谢,谢老师的指点。 精灵 2011-11-04 14:06:11 (ID:686) [点击:1408]
  • 普通文章 回复: 感谢,谢老师的指点。 xietao 2011-11-04 15:08:30 (ID:688) [点击:1133]
  • 普通文章 感谢,谢老师的指点。 精灵 2011-11-07 09:34:02 (ID:689) [点击:1504]
  • 普通文章 回复: 感谢,谢老师的指点。 xietao 2011-11-07 11:05:43 (ID:690) [点击:1248]
  • 普通文章 是否可以用更强硬点的手段? 孤舟蓑笠翁 2011-11-03 16:38:58 (ID:682) [点击:993]
  •  

    在线用户
    访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客 (我自己)   访客访客   访客访客   访客访客   访客访客
    当前栏目在线用户数 19, 总在线用户数 24