/// <summary> /// Change User Password. /// </summary> private void SaveBtn_Click(object sender, EventArgs e) { try { if (String.IsNullOrWhiteSpace(OriginalPasswordTB.Text)) { OriginalPasswordTB.Focus(); MessageBox.Show("原密码不能为空", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (String.IsNullOrWhiteSpace(NewPasswordTB.Text)) { NewPasswordTB.Focus(); MessageBox.Show("新密码不能为空", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!NewPasswordTB.Text.Equals(NewCPasswordTB.Text)) { NewPasswordTB.Focus(); MessageBox.Show("两次输入密码不一致", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!MemberShipEntity.CheckPassword(Common.CurUser.Password, OriginalPasswordTB.Text, Common.CurUser.PasswordFormat, Common.CurUser.PasswordSalt)) { OriginalPasswordTB.Focus(); MessageBox.Show("原密码输入错误", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var User = new UserInfo() { UserID = Common.CurUser.UserID, UserName = Common.CurUser.UserName, PasswordFormat = Common.CurUser.PasswordFormat, PasswordSalt = MemberShipEntity.GenerateSalt(), Password = NewPasswordTB.Text.Trim(), LastPasswordChangedDate = DateTime.Now }; User.Password = MemberShipEntity.EncodePassword(User.Password, User.PasswordFormat, User.PasswordSalt); MemberShipEntity.ChangePassword(User); Common.CurUser.Password = User.Password; Common.CurUser.PasswordSalt = User.PasswordSalt; Common.CurUser.LastPasswordChangedDate = User.LastPasswordChangedDate; MessageBox.Show("密码修改完成,下次登录请使用新密码。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); Common.WriteLog(DateTime.Now, EnmMsgType.Info, Common.CurUser.UserName, "Delta.MPS.AccessSystem.ChangePasswordForm.SaveBtn.Click", String.Format("用户[{0}]修改密码", User.UserName), null); this.DialogResult = System.Windows.Forms.DialogResult.OK; } catch (Exception err) { Common.WriteLog(DateTime.Now, EnmMsgType.Error, "System", "Delta.MPS.AccessSystem.ChangePasswordForm.SaveBtn.Click", err.Message, err.StackTrace); MessageBox.Show(err.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Add user. /// </summary> private void AddBtn_Click(object sender, EventArgs e) { try { var obj = new UserInfo() { Role = new RoleInfo() { RoleID = RoleTreeView.SelectedNode != null ? (Guid)RoleTreeView.SelectedNode.Tag : Common.CurUser.Role.RoleID }, UserID = Guid.NewGuid(), UserName = String.Empty, RemarkName = String.Empty, Password = String.Empty, PasswordFormat = EnmPasswordFormat.Hashed, PasswordSalt = MemberShipEntity.GenerateSalt(), MobilePhone = String.Empty, Email = String.Empty, CreateDate = DateTime.Now, LimitDate = new DateTime(2099, 12, 31), LastLoginDate = ComUtility.DefaultDateTime, LastPasswordChangedDate = ComUtility.DefaultDateTime, FailedPasswordAttemptCount = 0, IsLockedOut = false, LastLockoutDate = ComUtility.DefaultDateTime, Comment = String.Empty, Enabled = true }; if (new SaveUserForm(EnmSaveBehavior.Add, obj).ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { Users.Add(obj); BindUsersToGridView(); } } catch (Exception err) { Common.WriteLog(DateTime.Now, EnmMsgType.Error, "System", "Delta.MPS.AccessSystem.UserManagerForm.AddBtn.Click", err.Message, err.StackTrace); MessageBox.Show(err.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Save User. /// </summary> private void SaveBtn_Click(object sender, EventArgs e) { try { if (String.IsNullOrWhiteSpace(UserNameTB.Text)) { UserNameTB.Focus(); MessageBox.Show("用户名不能为空", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var UserName = UserNameTB.Text.Trim(); if (CurBehavior == EnmSaveBehavior.Add || (CurBehavior == EnmSaveBehavior.Edit && !CurUser.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase))) { if (MemberShipEntity.UserExists(UserName)) { UserNameTB.Focus(); MessageBox.Show("用户名已存在", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (CurBehavior == EnmSaveBehavior.Add || (CurBehavior == EnmSaveBehavior.Edit && UserPasswordCB.Checked)) { if (String.IsNullOrWhiteSpace(UserPasswordTB.Text)) { UserPasswordTB.Focus(); MessageBox.Show("密码不能为空", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!UserPasswordTB.Text.Equals(UserCPasswordTB.Text)) { UserPasswordTB.Focus(); MessageBox.Show("两次输入密码不一致", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (!String.IsNullOrWhiteSpace(UserMobileTB.Text) && !Regex.IsMatch(UserMobileTB.Text.Trim(), @"^1[358][0-9]{9}$", RegexOptions.IgnoreCase)) { UserMobileTB.Focus(); MessageBox.Show("请输入正确的手机号码", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!String.IsNullOrWhiteSpace(UserEmailTB.Text) && !Regex.IsMatch(UserEmailTB.Text.Trim(), @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$", RegexOptions.IgnoreCase)) { UserEmailTB.Focus(); MessageBox.Show("请输入正确的Email", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!NeverCB.Checked && UserLimitDTP.Value <= DateTime.Now) { UserLimitDTP.Focus(); MessageBox.Show("用户有效日期无效,请选择大于当前时间的有效日期。", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (CurBehavior == EnmSaveBehavior.Add) { CurUser.Role.RoleID = (Guid)UserRoleCB.SelectedValue; CurUser.Role.RoleName = UserRoleCB.Text; CurUser.UserName = UserNameTB.Text.Trim(); CurUser.RemarkName = UserRemarkNameTB.Text.Trim(); CurUser.Password = MemberShipEntity.EncodePassword(UserPasswordTB.Text.Trim(), CurUser.PasswordFormat, CurUser.PasswordSalt); CurUser.MobilePhone = UserMobileTB.Text.Trim(); CurUser.Email = UserEmailTB.Text.Trim(); CurUser.CreateDate = DateTime.Now; CurUser.LimitDate = NeverCB.Checked ? new DateTime(2099, 12, 31) : UserLimitDTP.Value; CurUser.LastLoginDate = ComUtility.DefaultDateTime; CurUser.LastPasswordChangedDate = ComUtility.DefaultDateTime; CurUser.FailedPasswordAttemptCount = 0; CurUser.IsLockedOut = false; CurUser.LastLockoutDate = ComUtility.DefaultDateTime; CurUser.Comment = UserCommentTB.Text.Trim(); CurUser.Enabled = UserStatusCB.Checked; var result = Common.ShowWait(() => { MemberShipEntity.CreateUser(CurUser); }, default(String), "正在保存,请稍后...", default(Int32), default(Int32)); if (result == DialogResult.OK) { Common.CopyObjectValues(CurUser, OriUser); Common.WriteLog(DateTime.Now, EnmMsgType.Info, Common.CurUser.UserName, "Delta.MPS.AccessSystem.SaveUserForm.SaveBtn.Click", String.Format("新增用户:[{0}]", CurUser.UserName), null); MessageBox.Show("数据保存完成", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = System.Windows.Forms.DialogResult.OK; } else { MessageBox.Show("数据保存失败", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (CurBehavior == EnmSaveBehavior.Edit) { var IsChangePwd = UserPasswordCB.Checked; if (!IsChangePwd || MessageBox.Show("您确定要重置用户密码吗?", "确认对话框", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK) { CurUser.Role.RoleID = (Guid)UserRoleCB.SelectedValue; CurUser.Role.RoleName = UserRoleCB.Text; CurUser.UserName = UserNameTB.Text.Trim(); CurUser.RemarkName = UserRemarkNameTB.Text.Trim(); if (IsChangePwd) { CurUser.PasswordFormat = EnmPasswordFormat.Hashed; CurUser.PasswordSalt = MemberShipEntity.GenerateSalt(); CurUser.Password = MemberShipEntity.EncodePassword(UserPasswordTB.Text.Trim(), CurUser.PasswordFormat, CurUser.PasswordSalt); CurUser.LastPasswordChangedDate = DateTime.Now; } CurUser.MobilePhone = UserMobileTB.Text.Trim(); CurUser.Email = UserEmailTB.Text.Trim(); CurUser.LimitDate = NeverCB.Checked ? new DateTime(2099, 12, 31) : UserLimitDTP.Value; CurUser.Comment = UserCommentTB.Text.Trim(); CurUser.Enabled = UserStatusCB.Checked; var result = Common.ShowWait(() => { MemberShipEntity.SaveUser(CurUser); if (IsChangePwd) { MemberShipEntity.ChangePassword(CurUser); } }, default(string), "正在保存,请稍后...", default(int), default(int)); if (result == DialogResult.OK) { Common.CopyObjectValues(CurUser, OriUser); Common.WriteLog(DateTime.Now, EnmMsgType.Info, Common.CurUser.UserName, "Delta.MPS.AccessSystem.SaveUserForm.SaveBtn.Click", String.Format("更新用户:[{0}]", CurUser.UserName), null); MessageBox.Show("数据保存完成", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = System.Windows.Forms.DialogResult.OK; } else { MessageBox.Show("数据保存失败", "系统警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } catch (Exception err) { Common.WriteLog(DateTime.Now, EnmMsgType.Error, "System", "Delta.MPS.AccessSystem.SaveUserForm.SaveBtn.Click", err.Message, err.StackTrace); MessageBox.Show(err.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }