lotus notes 在线密码修改

转载 2007年09月22日 10:08:00
要在浏览器中直接修改用户口令,首先要在数据库中建立一个表单,如图1所示,表单中包含ShortName,HttpPassword, Newpass1,Newpass2等4个可编辑文本域,分别用来让用户输入用户名,用户口令,第一次输入新口令,第二次输入新口令。另外,在表单中创建一个“确定”按钮,单击“确定”按钮以后所发生的事件就是保存表单——“@COMMAND([FILESAVE])”。再在WEBQUERYSAVE事件中调用一个代理 ChangePass——“@COMMAND([TOOLSRUNMACRO],”ChangePass”)”,这样,每当用户单击“确定”按钮时,系统就会自动调用代理 ChangePass,因此修改用户口令的关键代码就全部写在代理ChangePass中。
 
三.代理ChangePass说明。
1. 在代理ChangePass中所使用的Notes类及方法有:
GetDatabase 成员函数
在NotesSession类中给出的成员函数。创建代表位于服务器上,文件名已指定的数据库的 NotesDatabase 对象。如果在指定服务器的指定位置上存在该数据库,则打开该数据库。
DocumentContext 属性
在NotesSession类中给出的属性。只读,由外部程序通过 Notes API 创建的驻留内存的文档。外部程序首先创建一个驻留内存文档,然后运行一个代理。这个代理可以使用本属性访问驻留内存文档。
Search 成员函数
在NotesDatabase类中给出的成员函数。根据给出的文档选择标准,在整个数据库的所有文档中进行搜索,返回数据库中所有符合该标准的文档。
在Notes中,所有用户的信息均被保存在Domino的默认数据库目录Data下的数据库Names.nsf中。并且,每一个用户在 Names.nsf中均有一个对应的文档,文档中有几十个数据项,分别用来保存用户的名字、EMAIL地址、家庭住址、组织关系和口令等等信息,全部是在用户注册时产生的。其中用户在WEB浏览器中的用户名保存在数据项ShortName中,口令保存在数据项HttpPassword中。所以在代理ChangePass中的主要功能就是在数据库Names.nsf中根据给定的用户名以及口令,找到记录用户信息的对应文档,将文档中的数据项HttpPassword保存的原有口令改为新口令的值,就一切 OK了。
2.代理ChangePass的源代码。
Sub Initialize
Dim dt As New Notesdatetime("")
‘注释——获取当前的系统时间
Dim Session As New NotesSession
‘注释——获取当前的Session
Dim NamesDb As Notesdatabase
Dim docs As NotesDocumentCollection
Dim doc As Notesdocument,Namesdoc As Notesdocument
Dim formula As String
Dim new_pass As String
On Error Goto ErrProc
‘注释——出错则跳转到ErrProc
Set NamesDb = Session.GetDatabase("","names.nsf")
‘注释——打开数据库names.nsf
Set doc = Session.DocumentContext
‘注释——获取当前文档
If doc.new_pass(0) <> doc.new_pass1(0) Then
Print "<strong>新口令输入有误,请重新输入! </stron>"
Exit Sub
End If
new_pass = doc.new_pass(0)
Formula = "Form = 'Person' & ShortName='" + doc.ShortName(0) + "' & HttpPassword= '"+doc.HttpPassword(0)+"' "
‘注释——产生文档搜索标准
Set docs = NamesDb.Search(Formula,dt,0)
‘注释——得到文档搜索结果
If docs.count <> 1 Then
Print "<strong>用户名或口令出错,请检查! </stron>"
Else
Set Namesdoc = docs.Getfirstdocument
‘注释——获得记录用户信息的文档
Namesdoc.HttpPassword = New_Pass
Call namesdoc.save(True,False)
‘注释——修改用户的口令,并保存文档
Print "<strong>口令修改成功! </stron>"
End If
Exit Sub
ErrProc :
Print "系统错误"
End Sub
 

lotus Notes与webmail的密码一致性解决方法

Notes与webmail密码一致性解决方案 一、方案1:强制密码更改操作只能在notes实现 1、该方案实施后的结果与影响 1)      方案实现后可以回退 2)      notes密码和web...

在 Lotus Notes 中设置邮件定时发送的方法及代理功能介绍

孙 茂伟, 测试工程师, IBM 孙茂伟在北京科技大学获得工学学士、工学硕士学位,现于 IBM CDL ECM FileNet EForms TEAM 从事自动化测试相关工作。   简介: 本文...
  • hanle18
  • hanle18
  • 2011年10月19日 14:08
  • 1426

47. Lotus Notes中编程发送邮件(二)

在编程发送各种类似通知的邮件时,时常会需要发件人显示为某个特定的帐户,比如某个部门的名称或者管理员的名字。另一种需求是,用户收到某封邮件后,回复邮件的地址不同于发件人栏显示的地址。而正常情况下,发送邮...
  • starrow
  • starrow
  • 2013年08月17日 17:00
  • 6608

51. 替换设计和刷新设计——Lotus Notes的程序部署和更新之实践

50. 替换设计和刷新设计——Lotus Notes的程序部署和更新之理论一文介绍了理论上LotusNotes的程序部署和更新之概念和过程,实践当然相比更繁杂,涉及到的境况和物事更多,需要更多考量。本...
  • starrow
  • starrow
  • 2013年08月27日 21:27
  • 6455

Lotus Domino Notes表单,页面,视图,文档,域之间的关系

1.表单(Form) -关系型数据库里的 表设计   关系型数据库中通过表设计来定义这张Table上会有哪些字段,字段的类型以及长度等,然后通过Table来创建符合这个Table定义的记录(Rec...
  • bytxl
  • bytxl
  • 2013年09月03日 09:46
  • 1891

76. Lotus Notes编程中的命名习惯

程序里实体的命名规则和习惯在一种开发环境里编程,会用到各种实体(开发中用到的从文件类型、程序的组织单元到数据库对象的种种对象,不用对象一词以与面向对象语言里的对象区分)。实体种类的多少,与所用语言和平...
  • starrow
  • starrow
  • 2014年01月06日 15:49
  • 3759

在 IBM Lotus Notes 和 Domino 中编写快速查找代码

本文将考察 @DbLookup,它可能是 IBM Lotus Notes 和 Domino 中最流行的 @Formula。现在的 Lotus Notes/Domino 应用程序开发人员可能无法想像在不...

Lotus Notes/domino事件、属性、函数和命令

Notes事件  数据库、视图、表单或域事件的 Script 运行在用户的工作站上。  事件列表: click        操作、按钮或热点,在它们被选中时发生 Entering      ...

针对 IBM Lotus Notes 开发人员的性能基础知识

2010-06-08 21:37:39 标签:IBM Lotus Notes 性能 基础 这份白皮书阐述对 IBM Lotus Notes 和 Domino 应用程序的性...

Lotus Notes常用代码

Lotus Notes常用代码 1.检测当前用户是不是文档的创建者,如果不是,不允许编辑文档。 Sub Querymodechange(Source As Notesuidocument, Conti...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lotus notes 在线密码修改
举报原因:
原因补充:

(最多只允许输入30个字)