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问题与处理

注:以下的问题分析与处理是本人在日常遇到的问题与解决办法,可能因为其它原因造成的问题不包括在此范围内。仅针对R6.0和R8.5版本。 NQA1Notes client提示NSD is Running错...
  • jackygits
  • jackygits
  • 2010年11月02日 15:50
  • 16198

在lotus notes的视图的列里面插入图片的方法

 在lotus notes的视图中,如果把列都设置成文本的话,可能会造成审美疲劳。使用图片的话,不但可以节省空间(图标可比文字短多了),而且在有些时候意义更加明确。所以适当的使用一些图表是非常不错的。...
  • superbeck
  • superbeck
  • 2008年11月21日 17:50
  • 4234

Exchange & Lotus Notes邮件系统在线批量迁移账号及邮件

Exchange & Lotus Notes邮件系统在线批量迁移账号及邮件
  • aliasman
  • aliasman
  • 2016年07月19日 14:29
  • 1185

操作Lotus Notes数据库

今天,异构数据环境已经是一个普遍存在的问题,Windows常用开放数据库互连标准ODBC进行数据交换与操作,后来微软又推出了ADO技术,例如用VB操作Oracle、Sybase和SQL Server等...
  • Mobidogs
  • Mobidogs
  • 2007年03月14日 12:32
  • 3042

邮件服务器配置(notes篇):lotus notes 9.0.1安装及配置

1.安装 环境:windows server  2008 64 1)lotus notes  9.0.1下载: https://www-01.ibm.com/marketing/iwm/iwm/we...
  • zs15yy
  • zs15yy
  • 2017年07月11日 14:47
  • 1072

46. Lotus Notes中编程发送邮件(一)

邮件是Lotus Notes体系的核心和基本功能,以至于Send()是NotesDocument的一个方法,任何一个文档都可以被发送出去,Notes里的一封邮件也只是一个有一些特殊字段的文档。在程序开...
  • starrow
  • starrow
  • 2013年08月14日 17:24
  • 9315

Lotus Notes中最重要的部分

  LotusNotes中最重要的部分Evaluate()在脚本中执行一个lotus公式语言,返回该公式语言返回的值。3. (@Modified, @Date, @Weekday, @Today, @...
  • educast
  • educast
  • 2008年10月15日 09:48
  • 1699

77. Lotus Notes中编程发送邮件(三)之XPages中用Java发送邮件

在46. LotusNotes中编程发送邮件(一)和47.Lotus Notes中编程发送邮件(二)里笔者介绍了在Lotus Notes发送邮件的几种简单场景和需求,并给出了以LotusScript编...
  • starrow
  • starrow
  • 2014年01月07日 16:27
  • 5170

Lotus Notes 8 客户端可以更换界面风格主题 !

  
  • shichuanbao
  • shichuanbao
  • 2008年02月14日 17:29
  • 3769

Lotus Notes常用的Toolbar设定:一键修改字体、字号、文字颜色

1.在Notes client上做一个小按钮,右键Notes工具条→Toolbar设定→Customize,然后New→Button。(或者菜单栏File→Preferences→Toolbar→Cu...
  • wodemingzisiweiwei
  • wodemingzisiweiwei
  • 2013年07月30日 10:30
  • 2053
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lotus notes 在线密码修改
举报原因:
原因补充:

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