通过代码程序实现域密码与Domino密码同步

简介:

前两篇文章主要介绍了两个功能:1:域密码修改流程;2.web方式重置邮箱密码;今天主要介绍将这两个服务结合,实现域密码和domino密码同步;做法很简单,但是也有很多局限性;

公司环境,AD+Domino8.5.1

我们公司的人数比较多,大多数人员属于外派,而且经常不使用邮箱,偶尔用一下,但是经常使用erp系统,erp系统跟域是集成的;使用Domino8.5.邮箱也是使用最简单的Domino功能,通过outlook收发邮件,所以从功能上实现密码统一的难度很大。甚至有很多用户经常打电话及发邮件咨询那个是邮箱密码、那个是域密码的;最可恶的时候经常发邮件重置邮箱密码,重置一两次可以理解;我们重置后的新密码发给他们,然后用户后,不修改密码,直到忘记。所以我们就想到通过以下办法强制用户更改密码所需要的密码。

同时也为了达到密码的统一性,做法将两个程序关联起来;当用户通过链接更改完密码后,系统自动在后台自动运行邮箱密码重置链接,这样就达到的密码的统一性;具体见下:

为了保证密码同步的完整性,建议以下三个前提条件;

1.通过组策略禁用通过ctrl+alt+del更改密码选项

2.通过修改服务器配置禁用用户通过邮箱更改internet密码

3.强制用户在使用域密码的第一次必需更改密码

操作步骤:

1.创建Domino委派账户---changepwd,并将该用户添加到管理员组

2.将权限委派用户changepwd添加到web重置邮箱密码的数据库的ACL下

3.添加同步代码。

4.测试结果

一、首先创建邮箱密码重置用户;该账户主要用户程序来对用户密码重置工作;

创建changepwd;同时将该用户添加到Locadomainadmin(该组为domino下的管理员组)

clip_image002

然后修改web邮箱密码重置的数据库的访问控制:Chgupwd----应用程序---访问控制

该做法是让changepwd这个用户有权限对用户邮箱有重置密码的权限

clip_image004

将changepwd添加

clip_image006

将该用户委派---个人---管理者

clip_image008

添加后,修改域密码链接的代码:打开controller下的homecontroller.cs进行编辑:

clip_image010

添加以下代码进行保存;

1
2
3
4
5
6
7
8
9
10
11
12
public  static  void  changeDominoPwd( String  sNewUserName,  String  sNewPwd)
{
String  serverName =  "iio-mail01" ;
String  cookie =  "%temp%/cookie.txt" ;
String  system_username =  "changepwd" ;
String  system_passwd =  "password8" ;
String  str_login =  "cmd.exe /c curl -c "  + cookie +  " -d \"%25%25ModDate=0FF5136000000000&Username="  + system_username +  "&Password="  + system_passwd +  "&RedirectTo=%2FChgUpwd.nsf%2Finternetpwd%3FOpenForm\" \"http://" +serverName+ "/names.nsf?Login\" " ;
String  str_changepwd =  "cmd.exe /c curl -b "  + cookie +  " -d \"__Click=0&Form=internetpwd&Time=2013-12-18+19%3A47%3A48&CurLoginUser=CN%3D"  + system_username +  "%2FO%3Diiosoft&UserName="  + sNewUserName +  "&UserPassword="  + sNewPwd +  "\" \"http://" +serverName+ "/ChgUpwd.nsf/internetpwd?OpenForm&Seq=1\"" ;
Win32_Process win32 =  new  Win32_Process();
win32.CreateProcess(str_login);
win32.CreateProcess(str_changepwd);
}

clip_image012

保存完了,需要重新生成解决方案及发布,这样IIS的程序才生效。

clip_image014

clip_image016

clip_image018

clip_image020

同时将CURL程序放在代码程序服务器C盘的windows\system32

clip_image022

存放改程序,是为了执行以上代码

接下来进行测试:

我域内及Domino内都有一个user01的用户,现我将域内user01的密码修改成12345678,修改成功后,我们测试user01的Domino密码是否强制修改成12345678了

clip_image024

Domino下的user01的密码确实也被重置成12345678了,看来程序是生效的。

clip_image026

再试试domino邮箱别名,user01的邮箱别名testuser01,是否能正常验证呢:

验证通过

clip_image028

注:附件的程序格式为.7z;更改成.7z模板后才能正常解压及使用



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

相关文章
|
网络协议 网络安全
|
Java Maven
IDEA打包maven项目同时带上依赖
IDEA打包maven项目同时带上依赖
1213 0
IDEA打包maven项目同时带上依赖
|
域名解析 网络协议
教你如何把域名解析到自己的服务器上
今天无事说一说如何把自己的域名解析绑定到自己的服务器上。让访客们可以通过你的域名来访问你的网站。
29327 1
|
存储 关系型数据库 MySQL
|
11月前
|
Java API 微服务
微服务架构:解密微服务的基本概念
微服务架构:解密微服务的基本概念
264 0
IDEA 中 project窗口,不显示项目工程目录,解决方法
IDEA 中 project窗口,不显示项目工程目录,解决方法
|
网络协议 数据安全/隐私保护
获取域名转移密码
当您想将域名从原注册商转移到另一个注册商时,您需要从原注册商处获取域名转移密码
260 1
|
Java Windows
【极光系列】springBoot集成elasticsearch
【极光系列】springBoot集成elasticsearch
250 2
|
SQL 人工智能 JSON
社区供稿 l ChatGLM金融开源FinGLM学习笔记
日前,由中国中文信息学会社会媒体处理专委会主办,智谱 AI、安硕信息、阿里云、魔搭社区、北京交通大学联合承办的「SMP 2023 ChatGLM 金融大模型挑战赛」落下帷幕,该赛事旨在推动大模型在金融垂直行业应用的研究和开发,沉淀大模型落地实践经验。赛后,赛事方第一时间开源开放了赛事相关的代码,目前也开始有开发者小伙伴基于此整理了一些干货笔记,小编特搜罗来向大家分享,希望能给正在关注大模型行业落地的小伙伴们一些帮助。
具有双极性输出的D/A转换器的介绍
双极性输出的D/A转换器 一、引言 D/A转换器(Digital-to-Analog Converter)是一种将数字信号转换为模拟信号的设备。它在数字系统和模拟系统之间起到了桥梁的作用。D/A转换器的输出可以是单极性的,也可以是双极性的。本文将重点介绍双极性输出的D/A转换器的原理、应用领域和设计要点。 二、工作原理 双极性输出的D/A转换器是一种能够输出正负电压的设备。它的基本原理是通过将输入的数字信号转换为相应的模拟电压,并将其输出。双极性输出的D/A转换器通常采用R-2R网络结构,其中R代表电阻。该结构由一组电阻串联和并联而成,通过改变电阻值的连接方式,可以实现不同的输出电压。
652 0