Exemple #1
0
 public ModifyPasswordWindowViewModel(ChildWindow aChileWindow)
 {
     this.ChildWindow     = aChileWindow;
     ModifyPasswordEntity = new ModifyPasswordEntity();
     OnModifyPassword     = new DelegateCommand(OnModifyPasswordCommand);
     OnCancel             = new DelegateCommand(OnCancelCommand);
 }
Exemple #2
0
        private void OnModifyPasswordCommand()
        {
            if (ModifyPasswordEntity.Validate())
            {
                IsBusy = true;

                DocumentManager.Web.OperationDomainContext operationDomainContext = new DocumentManager.Web.OperationDomainContext();

                App app = Application.Current as App;

                if (app.MainPageViewModel.User.Password == Cryptography.MD5.GetMd5String(ModifyPasswordEntity.NewPassword))
                {
                    NotifyWindow notifyWindow = new NotifyWindow("密码验证", "请输入新密码");
                    notifyWindow.Show();
                    IsBusy = false;
                    return;
                }
                InvokeOperation <bool> lModifyPassword = operationDomainContext.ModifyPassword(app.MainPageViewModel.User.UserID, Cryptography.MD5.GetMd5String(ModifyPasswordEntity.NewPassword));
                lModifyPassword.Completed += ModifyPassword_Completed;
            }
        }
        private void buttonControl1_Click(object sender, EventArgs e)
        {
            if (!dc.Validate())
            {
                return;
            }
            ModifyPasswordEntity modifyPassword = new ModifyPasswordEntity();

            dc.GetValue(modifyPassword);

            if (modifyPassword.oldPassword.Equals(modifyPassword.newPassword))
            {
                dc.ShowError(teNewPassword, "新密码不能与旧密码一样");
                return;
            }

            if (!modifyPassword.newPassword.Equals(modifyPassword.againPassword))
            {
                dc.ShowError(teAgainPassword, "密码不一致");
                return;
            }

            cmd.ShowOpaqueLayer();
            //获取用户角色,密码复杂度验证需要
            String param = "?" + PackReflectionEntity <ModifyPasswordEntity> .GetEntityToRequestParameters(modifyPassword);

            String url = AppContext.AppConfig.serverUrl + "itf/System/getUser" + param;

            this.DoWorkAsync(500, (o) => //耗时逻辑处理(此处不能操作UI控件,因为是在异步中)
            {
                String data = HttpClass.httpPost(url);
                return(data);
            }, null, (data) => //显示结果(此处用于对上面结果的处理,比如显示到界面上)
            {
                JObject objT = JObject.Parse(data.ToString());
                if (string.Compare(objT["state"].ToString(), "true", true) == 0)
                {
                    UserEntity user = objT["result"].ToObject <UserEntity>();
                    if (user.userType.Equals("1"))
                    {
                        //密码复杂度验证
                        var regex = new Regex(@"
                        (?=.*[0-9])                     #必须包含数字
                        (?=.*[a-zA-Z])                  #必须包含小写或大写字母
                        (?=([\x21-\x7e]+)[^a-zA-Z0-9])  #必须包含特殊符号
                        .{8,16}                         #至少8个字符,最多16个字符
                        ", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
                        if (!regex.IsMatch(modifyPassword.newPassword))
                        {
                            cmd.HideOpaqueLayer();
                            dc.ShowError(teNewPassword, "管理员密码数字+字母+符号三种组合以上,至少8位数,最多16位数");
                            return;
                        }
                    }
                    else
                    {
                        //密码复杂度验证
                        var regex = new Regex(@"
                        (?=.*[0-9])                     #必须包含数字
                        (?=.*[a-zA-Z])                  #必须包含小写或大写字母
                        (?=([\x21-\x7e]+)[^a-zA-Z0-9])  #必须包含特殊符号
                        .{6,16}                         #至少6个字符,最多16个字符
                        ", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
                        if (!regex.IsMatch(modifyPassword.newPassword))
                        {
                            cmd.HideOpaqueLayer();
                            dc.ShowError(teNewPassword, "密码数字+字母+符号三种组合以上,至少6位数,最多16位数");
                            return;
                        }
                    }

                    url = AppContext.AppConfig.serverUrl + "itf/System/modifyPassword" + param;
                    this.DoWorkAsync(500, (o) => //耗时逻辑处理(此处不能操作UI控件,因为是在异步中)
                    {
                        data = HttpClass.httpPost(url);
                        return(data);
                    }, null, (data2) => //显示结果(此处用于对上面结果的处理,比如显示到界面上)
                    {
                        cmd.HideOpaqueLayer();
                        objT = JObject.Parse(data2.ToString());
                        if (string.Compare(objT["state"].ToString(), "true", true) == 0)
                        {
                            DialogResult = DialogResult.OK;
                        }
                        else
                        {
                            MessageBoxUtils.Show(objT["message"].ToString(), MessageBoxButtons.OK,
                                                 MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, this);
                        }
                    });
                }
                else
                {
                    cmd.HideOpaqueLayer();
                    MessageBoxUtils.Show(objT["message"].ToString(), MessageBoxButtons.OK,
                                         MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, this);
                }
            });
        }