通过代码实现web方式重置域密码及同步Domino密码

前面我们介绍了,如果介绍了,通过代码实现域密码修改流程,今天我们主要介绍如何实现web方式重置域密码,该功能主要面向管理员;同时挂载邮箱密码重置功能链接,实现,通过web方式重置域密码后,Domino邮箱密码也随之重置达到统一的效果;

主要做法就是在域密码修改及遗忘流程功能下修改代码实现重置密码效果:

添加图示并且添加重置密码代码:

可以复制其他试图及修改代码即可;

通过代码实现web方式重置域密码及同步Domino密码_第1张图片

@{
ViewBag.Title = "Resetpwd";
Layout = "~/Views/Shared/_LayoutView.cshtml";
}
@section head{

}
重置密码
Change your password
A strong password helps prevent
    
然后修改homecontroller.cs 添加一下代码: public void ChangePwd() { string sItCode = Request["sItCode"]; string sOldPwd = Request["sOldPwd"]; string sNewPwd = Request["sNewPwd"]; ADOperator ao = new ADOperator(); int y = ao.IsUserExistsByAccount(sItCode); string Rs = ""; if (y == 1) { int x = ao.Login(sItCode, sOldPwd); if (x == 1) { int z = ao.ChangeUserPassword(sItCode, sOldPwd, sNewPwd); if (z == 1) { Rs = "CS"; //调用Domino密码修改 changeDominoPwd(sItCode, sNewPwd); } else { Rs = "TR"; } } else { Rs = "EP"; } } else { Rs = "NU"; } ao.dispose(); Response.Write(Rs.ToString()); } //重置密码 //[HttpGet] public void SetPassword() { string Rs = "CS"; string sItCode = Request["sItCode"]; string sOldPwd = Request["sOldPwd"]; string sNewPwd = Request["sNewPwd"]; ADOperator ao = new ADOperator(); int y = ao.IsUserExistsByAccount(sItCode); if (y == 1) { ADOperator.SetPasswordByAccount(sItCode, sNewPwd); changeDominoPwd(sItCode, sNewPwd); Response.Write(Rs.ToString()); } } #region Domino密码同步修改 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); } #endregion } }

通过代码实现web方式重置域密码及同步Domino密码_第2张图片

重置域密码后,需要重置Domino密码:所以需要添加关联domino下web方式重置密码的URL

通过代码实现web方式重置域密码及同步Domino密码_第3张图片

web下方式重置domino密码

通过代码实现web方式重置域密码及同步Domino密码_第4张图片

然后,重新生成解决方案及发布:

通过代码实现web方式重置域密码及同步Domino密码_第5张图片

发布后,可通过iis访问浏览

通过代码实现web方式重置域密码及同步Domino密码_第6张图片

通过代码实现web方式重置域密码及同步Domino密码_第7张图片

通过代码实现web方式重置域密码及同步Domino密码_第8张图片

通过添加网站方式,选择发布后的路径文件

通过代码实现web方式重置域密码及同步Domino密码_第9张图片

添加后,修改应用程序池的版本;默认是net2.0,需要修改net4.0

通过代码实现web方式重置域密码及同步Domino密码_第10张图片

浏览访问

通过代码实现web方式重置域密码及同步Domino密码_第11张图片

通过代码实现web方式重置域密码及同步Domino密码_第12张图片

接下来测试一下

重置user1的密码为123123

通过代码实现web方式重置域密码及同步Domino密码_第13张图片

通过user01及重置后的密码尝试验证登陆

通过代码实现web方式重置域密码及同步Domino密码_第14张图片

通过代码实现web方式重置域密码及同步Domino密码_第15张图片

接下来测试domino密码是否也被重置:

通过代码实现web方式重置域密码及同步Domino密码_第16张图片