void UpdateAccount(Dictionary <string, object> cinfo, string opSrc)
        {
            string acc = cinfo["n1"].ToString();

            if (string.IsNullOrEmpty(acc))
            {
                Response.Write("err_data_error");//号码错误
                return;
            }

            string[] field = { "pwd" };
            Dictionary <string, object> data = MongodbAccount.Instance.ExecuteGetBykey("AccountTable", "acc", acc, field);

            if (data == null)
            {
                Response.Write("err_not_acc");//找不到账号
            }
            else
            {
                // 玩家账号密码不能在游戏客户端修改,但可以通过API接口来改
                if (opSrc != CC.RESET_MODIFY_BY_API)
                {
                    DyOpModifyPlayerPwd dy = new DyOpModifyPlayerPwd();
                    bool canModify         = dy.canModifyPwd(acc);
                    if (!canModify)
                    {
                        Response.Write("err_cannot_modify"); // 不能修改密码
                        return;
                    }

                    string oldpwd = AESHelper.AESDecrypt(cinfo["n2"].ToString(), AES_KEY);//password
                    if (oldpwd != data["pwd"].ToString())
                    {
                        Response.Write("err_pwd_error");//验证码错误
                        return;
                    }
                }

                string spwd = AESHelper.AESDecrypt(cinfo["n3"].ToString(), AES_KEY); //password
                if (spwd.Length != 32)                                               //md5
                {
                    Response.Write("err_pwd_error");                                 //密码错误
                    return;
                }

                Dictionary <string, object> updata = new Dictionary <string, object>();
                updata["pwd"]       = spwd;
                updata["updatepwd"] = true;
                string ret = MongodbAccount.Instance.ExecuteUpdate("AccountTable", "acc", acc, updata);
                if (ret == "")
                {
                    Response.Write("err_success");
                }
                else
                {
                    Response.Write("err_system_error");
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            ParamModifyPlayerPwd param = new ParamModifyPlayerPwd();

            param.m_gmAccount = Request.QueryString["gmAcc"];
            param.m_gmPwd     = Request.QueryString["gmPwd"];
            param.m_playerAcc = Request.QueryString["playerAcc"];
            param.m_oldPwd    = Request.QueryString["oldPwd"];
            param.m_newPwd    = Request.QueryString["newPwd"];
            param.m_sign      = Request.QueryString["sign"];

            if (!param.isParamValid())
            {
                Dictionary <string, object> data = new Dictionary <string, object>();
                data.Add("result", RetCode.RET_PARAM_NOT_VALID);
                Response.Write(Helper.genJsonStr(data));
                return;
            }

            DyOpModifyPlayerPwd dy = new DyOpModifyPlayerPwd();
            string retStr          = dy.doDyop(param);

            Response.Write(retStr);
        }