大家好,才是真的好。
很多时候企业对员工的安全使用进行了硬性规定,例如严格的就是,每三个月或六个月要至少更改一次密码。
在Domino 8.5以后,功能上多了一个新特性,叫ID保险库,其实就是把用户的id标识符上传到该保险库中,进行id的集中存储和管理。
之后Domino 11版本中又多了一个新功能,就像你在帮助文档当中所看到的所有的web协议,所用到的internet密码都可以使用id保险库当中的id密码来进行验证:
这样的话我们只需要修改服务器上的id保险库里面的id密码,就可以实现用户的id标识服务、Internet密码(各种Internet协议使用的密码)一次性修改和同步。
从Domino 8.5版本开始,开发功能上多了一个功能叫NotesSession类的ResetUserPassword,例如下面的三行代码就可以实现用户自己在web网页上修改 id密码。
Dim s As New NotesSession
Dim Doc As NotesDocument
Call s.ResetUserPassword("", "", "password")
对的,只需要这三行代码,把它做成一个web代理,Notes用户登录到该网页上,就可以修改用户的当前密码为password。
现在我们来看一下具体实现。
打开Domino Designer设计客户机,按Ctrl+N键,弹出一个新建应用对话框,新建一个应用,服务器选择你自己的服务器,名字叫做reset password,点击确定按钮,如下图:
接着,新建一个表单,主要是一个新密码和确认密码字段,之后做一个按钮“重置我的密码”,里面写上公式运行一个代理“agtResetPassword”,效果如下图:
如果你如果需要设计表单的更好看,可以加更多html和css代码进行修饰,例如下图:
然后,在代理位置创建一个代理程序,名字叫做agtResetPassword,编程语言选择lotusscript:
是的,只有四行代码:
Dim s As New NotesSession
Dim Doc As NotesDocument
Set Doc = Session.DocumentContext
Call Session.ResetUserPassword("","",Doc.newpassword(0))
效果如下:
为该代理设置运行属性:
尤其是安全性中要允许受限操作:
界面和代码设计完成后,还要设置该数据库的acl匿名者为无访问权限,-default-为编辑者或以上权限,如下图:
在测试验证效果之前,我们还得检查一下你自己的id保险库配置,因为刚才我们采用的某个用户,比如说admin来创建的修改密码代理,那么在保险库当中要设置该admin用户设置密码重置代理认证中心,如下图所示:
接着我们通过浏览器打开该重置密码应用,就可以登录到该页面当中来:
输入新密码,然后点击“重置我的密码”按钮:
输入一下新密码,我们就可以看到id保险库当中的密码已经变化了,你就可以用新的改动过的密码进行登录了:
开发一个新功能,是不是特别简单?
不过表单还是请稍微注意下布局,或者尽量给点样式,不说好看,最起码要不辣眼睛:
我们大体实现了定制的自助密码重置功能,不过里面还有很多细节需要细化一下,例如重置的页面要设计漂亮一点,点击重置密码按钮后,需要跳转到一个新页面上,等等。
不过我们这里碍于篇幅(实在不想写了,也怕你不看),今天就介绍到这里。更多文章可关注微信公号:协作者