Domino9下通过web方式批量重置邮箱密码

简介:

近期呢,公司有一个分布将近有700左右的人员,均需要重置一下一邮箱密码,重置密码简单,可人数众多,如果管理员通过手动的方式一个一个重置会给管理员带来很大困扰,同时密码要求重置成不不同的密码,如果将所有用户密码重置成一个密码就方便很多,所以就想到了通过web程序来实现批量重置邮箱密码,做完后,效果还不错,再此分享给大家,供参考学习。

密码重置要求是用户名+***后6位;通过web方式重置用户密码的格式要求是:用户名,密码的方式

clip_image002

我们首先在notes下创建一个空数据库

clip_image004

为数据库命名:Changepwd.nsf

clip_image006

创建好后,我们通过desinger打开该数据库

clip_image008

因为我们开始已经定义了web的排版页面,所以首先是创建一个表单

clip_image010

表单名称:pwd

clip_image012

设置自己的页面格式:具体参考见下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
< div  style = "display:none" >
</ div >
< div  style = "text-align:center" >
< h1 >邮箱密码重置系统< h1 >
</ div >
< table  border = "1"  cellspacing = "0"  align = "center"  style = ";text-align:center" >
< tr >
< td >Tip</ td >
< td >请按照以下格式进行填写:username,password</ td >
</ tr >
< tr >
< td >用户名+密码:</ td >
< td ></ td >
</ tr >
< tr >
< td  colspan = "2"  align = "center" >
</ td >
</ tr >
</ table >

将代码写好后,我们保存

clip_image014

clip_image016

用户名域值属性---文本、多值

clip_image018

输入的参数通过新行来区分

clip_image020

调整页面大小

clip_image022

添加一个重置按钮

clip_image024

重置密码的表单已经完成。

clip_image026

重置密码程序:---新建代理agtpwd

clip_image028

clip_image030

编辑程序

clip_image032

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
% REM
Agent 修改用户名密码
Created 2013-12-15 by administrator/iiosoft
Description: Comments for Agent
%END  REM
Option  Public
Option  Declare
Dim  session  As  NotesSession
Dim  db  As  NotesDatabase
Dim  doc  As  NotesDocument
Dim  namesdb  As  NotesDatabase
Dim  namesdoc  As  NotesDocument
Dim  namesview  As  NotesView
Sub  Initialize
On  Error  GoTo  err_handle
Dim  flag  As  Boolean
Dim  mstring  As  String
Dim  arr  As  Variant
Set  session =  New  NotesSession
Set  db = session.Currentdatabase
Set  doc = session.Documentcontext
Set  namesdb =  New  NotesDatabase( "" , "names.nsf" )
flag =  False
If  Not  namesdb.Isopen  Then
MsgBox  "您无权限修改,请联系管理员"
Print |<script type= 'text/javascript'>
alert( "您无权限修改,请联系管理员" ");
window.location =  "http://iio-mail01.iiosoft.com/ChgUpwd.nsf/|+doc.Form(0)+|?OpenForm" ;
</script>|
Exit  sub
End  If
Set  namesview = namesdb.Getview( "People" )
ForAll msg  In  doc.username
Call  fnChangeUserPwd(msg)
End  ForAll
Print |<a href = "/| & doc.dbpath(0) & |/pwd?openform" >click here  To  Return  |
Exit  Sub
err_handle:
MsgBox session.Currentdatabase.Filepath + session.Currentagent.name
MsgBox  Error
MsgBox Erl
End  Sub
% REM
Sub  fnChangeUserPwd
Description: Comments for  Sub
%END  REM
Sub  fnChangeUserPwd(msg  As  String )
On  Error  GoTo  eh
Dim  namedoc  As  NotesDocument
Dim  user  As  String
Dim  pwd  As  String
If  msg= ""  Then
Exit  sub
End  If
user=StrLeft(msg, "," )
pwd=StrRight(msg, "," )
Set  namedoc=namesview.Getdocumentbykey(user, true)
If  Not  namedoc  Is  Nothing  Then
namedoc.HTTPPassword = Evaluate(|@Password( "| & pwd &|" )|)
namedoc. HTTPPasswordChangeDate = Now
Call  namedoc.save( True , True )
Print  "change user : "  & user &  " password :"  & pwd &  " ,Rest success <br>"
Else
Print  "can not find user: "  & user &  "<br>"
End  If
Exit  Sub
eh:
MsgBox  Error  " "  & erl
End  Sub




clip_image034

1
2
3
4
5
6
7
% REM
Agent 修改用户名密码
Created 2013-12-15 by administrator/iiosoft
Description: Comments for Agent
%END  REM
Option  Public
Option  Declare


clip_image036

1
2
3
4
5
6
Dim  session  As  NotesSession
Dim  db  As  NotesDatabase
Dim  doc  As  NotesDocument
Dim  namesdb  As  NotesDatabase
Dim  namesdoc  As  NotesDocument
Dim  namesview  As  NotesView

clip_image038

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub  Initialize
On  Error  GoTo  err_handle
Dim  flag  As  Boolean
Dim  mstring  As  String
Dim  arr  As  Variant
Set  session =  New  NotesSession
Set  db = session.Currentdatabase
Set  doc = session.Documentcontext
Set  namesdb =  New  NotesDatabase( "" , "names.nsf" )
flag =  False
If  Not  namesdb.Isopen  Then
MsgBox  "您无权限修改,请联系管理员"
Print |<script type= 'text/javascript'>
alert( "您无权限修改,请联系管理员" ");
window.location =  "http://iio-mail01.iiosoft.com/ChgUpwd.nsf/|+doc.Form(0)+|?OpenForm" ;
</script>|
Exit  sub
End  If
Set  namesview = namesdb.Getview( "People" )
ForAll msg  In  doc.username
Call  fnChangeUserPwd(msg)
End  ForAll
Print |<a href = "/| & doc.dbpath(0) & |/pwd?openform" >click here  To  Return  |
Exit  Sub
err_handle:
MsgBox session.Currentdatabase.Filepath + session.Currentagent.name
MsgBox  Error
MsgBox Erl
End  Sub


clip_image040

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
% REM
Sub  fnChangeUserPwd
Description: Comments for  Sub
%END  REM
Sub  fnChangeUserPwd(msg  As  String )
On  Error  GoTo  eh
Dim  namedoc  As  NotesDocument
Dim  user  As  String
Dim  pwd  As  String
If  msg= ""  Then
Exit  sub
End  If
user=StrLeft(msg, "," )
pwd=StrRight(msg, "," )
Set  namedoc=namesview.Getdocumentbykey(user, true)
If  Not  namedoc  Is  Nothing  Then
namedoc.HTTPPassword = Evaluate(|@Password( "| & pwd &|" )|)
namedoc. HTTPPasswordChangeDate = Now
Call  namedoc.save( True , True )
Print  "change user : "  & user &  " password :"  & pwd &  " ,Rest success <br>"
Else
Print  "can not find user: "  & user &  "<br>"
End  If
Exit  Sub
eh:
MsgBox  Error  " "  & erl
End  Sub



代码标记好后,我们需要通过表单来调用程序

clip_image042

查看服务器信息


clip_image044

输入需要重置的用户及密码进行重置密码

clip_image046

重置完成后,我们可以看见操作的log

clip_image048

重置后,还可以单击跳转页面进行跳转到密码重置首页

clip_image050

重置后,我们通过控制台来验证密码是否重置成功

clip_image052

clip_image054

注:数据库上传到页面上了,下载附件后,将扩展名更改为.7z后才能解压。



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1561185,如需转载请自行联系原作者

相关文章
|
3月前
|
前端开发 数据安全/隐私保护 开发者
热门聚焦!Web 前端 CSS 选择器 —— 解锁精美网页的密码,触动开发者心灵深处!
【8月更文挑战第23天】CSS 选择器是 Web 前端设计中的关键工具,用于精准定位和美化页面元素。主要包括:直观的元素选择器(如 `p`),灵活的类选择器(如 `.my-class`),唯一的 ID 选择器(如 `#unique-div`),以及可根据属性选择的属性选择器(如 `a[title]`)。此外,后代选择器(如 `div p`)、子选择器(如 `ul &gt; li`)和相邻兄弟选择器(如 `h1 + p`)可用于更复杂的选择。通用选择器(如 `*`)则适用于所有元素。通过组合这些选择器,开发者能够创建出既复杂又美观的网页样式,提升用户体验。
37 0
|
3月前
|
数据安全/隐私保护
NSCTF(第六届宁波市赛) 部分web+密码
NSCTF(第六届宁波市赛) 部分web+密码
31 0
|
Java Maven
IDEA2022版本创建maven web项目(两种方式)
创建maven web项目有两种方式,一种是使用骨架方式,一种是不使用骨架的方式
842 2
IDEA2022版本创建maven web项目(两种方式)
|
前端开发 安全 JavaScript
【web渗透思路】任意账号的注册、登录、重置、查看
【web渗透思路】任意账号的注册、登录、重置、查看
787 0
【web渗透思路】任意账号的注册、登录、重置、查看
|
测试技术 iOS开发
Flutter Web网站之最简方式实现暗黑主题无缝切换
Flutter Web网站之最简方式实现暗黑主题无缝切换
307 0
Flutter Web网站之最简方式实现暗黑主题无缝切换
|
数据库 数据安全/隐私保护 开发者
弹性 Web 托管修改数据库密码 | 学习笔记
快速学习弹性 Web 托管修改数据库密码
弹性 Web 托管修改数据库密码 | 学习笔记
|
数据安全/隐私保护
web作业:凯撒密码之加密
/** @param words String @return String
86 0
|
存储 网络协议 安全
WEB服务端开发必懂的概念和底层原理,通过对比的方式让大家更好的理解和使用
golang 源码级别支持协程,实现简单。协程使用,当底层遇到阻塞会自动切换,也就是逻辑层通过同步方式实现异步,充分利用了系统资源,同时避免了异步状态机的反人类异步回调,实现方式更为直观简单。golang 协程是通过多线程维护,所以避免不了锁的使用,但也极大解决了研发效率问题。
200 0
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
101 3
|
17天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
103 45