/// <summary> /// 修改密码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_certain_Click(object sender, EventArgs e) { //this.DialogResult = DialogResult.OK; if (txt_pwd.Text != "" && txt_newPwd.Text != "") { string pwd = Encrypt.Encode(txt_pwd.Text); if (new PersonService().LoginValidate(cmb_user.SelectedValue.ToString(), pwd)) { //引发事件并传递事件包含的数据,该事件检验用户名密码是否正确 ModifyPwdEventArgs auth = new ModifyPwdEventArgs(); auth.userAndPwdRight = true; auth.pwd = txt_newPwd.Text; onAuthorizPass(auth); this.Close(); } else { lbl_information.Text = ""; lbl_information.Text = lbl_information.Text + "您输入原密码不正确,请重新输入"; txt_newPwd.Text = ""; } } else { lbl_information.Text = ""; lbl_information.Text = "请输入密码"; } }
/// <summary> /// 初始化控件数据源 /// </summary> private void initializeDatasource() { ModifyPwdEventArgs modify = new ModifyPwdEventArgs(); cmb_user.DataSource = new PersonService().people().Where <PersonModel>(c => c.FailuerDate == null && c.Code == userCode). Select((c) => new { c.Code, c.Name, c.pwd, c.EffectDate }).ToList(); cmb_user.DisplayMember = "name"; cmb_user.ValueMember = "Code"; }
/// <summary> /// 密码修改方法 /// </summary> /// <param name="sender"></param> /// <param name="authorizationEventArgs"></param> private void modifyPwdResult(Object sender, ModifyPwdEventArgs auth) { if (txt_cusCode.Text != "") { try { using (var db = new AuthorityContext()) { string code = txt_cusCode.Text; PersonModel w = db.Person.Where(s => s.Code == code).FirstOrDefault(); w.pwd = Encrypt.Encode(auth.pwd); db.SaveChanges(); MessageBox.Show("密码修改成功", "密码修改提示"); txt_pwd.Text = Encrypt.Encode(auth.pwd); } } catch (Exception ex) { MessageBox.Show(ex.Message + ex.InnerException, "修改密码错误提示"); } } }
/// <summary> /// 事件处理方法,调用端实例化事件委托后就执行该方法 /// authorizPass?本质上相当于执行方法时的第二次判断 /// 引发事件是执行事件处理方法的第一次判断 /// </summary> /// <param name="authorizationEventArgs"></param> protected virtual void onAuthorizPass(ModifyPwdEventArgs modifyPwdEventArgs) { authorizPass?.Invoke(this, modifyPwdEventArgs); }