protected void Page_Load(object sender, EventArgs e) { string platform = Request.Params["platform"]; if (string.IsNullOrEmpty(platform)) { Response.Write("local ret = {code = -1}; return ret;"); return; } string table = ConfigurationManager.AppSettings["acc_" + platform]; if (string.IsNullOrEmpty(table)) { Response.Write("local ret = {code = -15}; return ret;"); return; } string acc = BuildAccount.getAutoAccount(table); if (string.IsNullOrEmpty(acc)) { Response.Write("local ret = {code = -12}; return ret;"); return; } string encrypt = Request.Params["encrypt"]; bool pwd_encrypt = false; if (!string.IsNullOrEmpty(encrypt) && encrypt == "true") { pwd_encrypt = true; } string pwd = null; string out_pwd = null; string save_pwd = null; if (pwd_encrypt) { pwd = BuildAccount.getAutoPassword(6); out_pwd = AESHelper.AESEncrypt(pwd, AES_KEY); save_pwd = AESHelper.MD5Encrypt(pwd); } else { out_pwd = BuildAccount.getAutoPassword(20); pwd = string.Format("{0}{1}{2}{3}{4}{5}", out_pwd[8], out_pwd[16], out_pwd[4], out_pwd[11], out_pwd[2], out_pwd[9]);//password save_pwd = AESHelper.MD5Encrypt(pwd); } string deviceID = Request.Params["deviceID"]; Random rd = new Random(); int randkey = rd.Next(); Dictionary <string, object> updata = new Dictionary <string, object>(); updata["acc"] = acc; updata["pwd"] = save_pwd; DateTime now = DateTime.Now; updata["randkey"] = randkey; updata["lasttime"] = now.Ticks; updata["regedittime"] = now; updata["regeditip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); updata["updatepwd"] = false; //updata["platform"] = Platform; string strerr = MongodbAccount.Instance.ExecuteStoreBykey(table, "acc", acc, updata); if (strerr != "") { Response.Write("local ret = {code = -11}; return ret;"); } else { string channelID = Request.Params["channelID"]; Dictionary <string, object> savelog = new Dictionary <string, object>(); savelog["acc"] = acc; savelog["acc_real"] = acc; if (!string.IsNullOrEmpty(deviceID)) { savelog["acc_dev"] = deviceID; } savelog["ip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); savelog["time"] = now; savelog["channel"] = channelID; MongodbAccount.Instance.ExecuteInsert("RegisterLog", savelog); //渠道每日注册 if (string.IsNullOrEmpty(channelID) == false) { MongodbAccount.Instance.ExecuteIncBykey("day_regedit", "date", DateTime.Now.Date, channelID, 0); } string ret = string.Format("local ret = {{code = 0, acc=\"{0}\", pwd=\"{1}\"}}; return ret;", acc, out_pwd); Response.Write(ret); } //Response.Write("local ret = {code = 0, acc=\"fish000001\", pwd=\"123456\"};"); }
void CheckAccount(Dictionary <string, object> data) { string platform = Request.Params["platform"]; if (string.IsNullOrEmpty(platform)) { buildReturnMsg("-1");//data error return; } string table = ConfigurationManager.AppSettings["acc_" + platform]; if (string.IsNullOrEmpty(table)) { buildReturnMsg("-15");//platform error return; } string HardwareID = data["n1"].ToString();//HardwareID if (string.IsNullOrEmpty(HardwareID)) { buildReturnMsg("-12");//account error return; } //特殊校验 string spwd = AESHelper.AESDecrypt(data["n2"].ToString(), AES_KEY);//password spwd = spwd.Replace("\n", ""); string tmp = AESHelper.AESEncrypt(AES_KEY + HardwareID + ACC_CHECK, ACC_CHECK); if (spwd != tmp) //md5 { buildReturnMsg("-14"); //pwd error return; } string retacc = ""; string strerr = ""; bool isregedit = false; Random rd = new Random(); int randkey = rd.Next(); DateTime now = DateTime.Now; Dictionary <string, object> updata = new Dictionary <string, object>(); updata["randkey"] = randkey; updata["lasttime"] = now.Ticks; updata["lastip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); if (!MongodbAccount.Instance.KeyExistsBykey(table, "acc_dev", HardwareID)) { retacc = BuildAccount.getAutoAccount(table); //注册 updata["acc_dev"] = HardwareID; updata["acc"] = retacc; updata["regedittime"] = now; updata["updatepwd"] = false; strerr = MongodbAccount.Instance.ExecuteStoreBykey(table, "acc_dev", HardwareID, updata); isregedit = true; } else { var fdata = MongodbAccount.Instance.ExecuteGetBykey(table, "acc_dev", HardwareID, new string[] { "acc" }); if (fdata != null) { retacc = fdata["acc"].ToString(); } //登陆 strerr = MongodbAccount.Instance.ExecuteUpdate(table, "acc_dev", HardwareID, updata); } if (strerr != "") { buildReturnMsg("-11");//server error } else { RSAHelper rsa = new RSAHelper(); rsa.setModulus(data["n3"].ToString()); string clientkey = randkey.ToString() + ":" + now.Ticks.ToString(); buildReturnMsg(AESHelper.AESEncrypt(clientkey, AES_KEY), true, retacc);//login success string channelID = null; if (data.ContainsKey("n4")) { channelID = data["n4"].ToString(); } Dictionary <string, object> savelog = new Dictionary <string, object>(); savelog["acc_dev"] = HardwareID; savelog["acc"] = retacc; savelog["ip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); savelog["time"] = now; savelog["channel"] = channelID; MongodbAccount.Instance.ExecuteInsert("LoginLog", savelog); if (isregedit) { MongodbAccount.Instance.ExecuteInsert("RegisterLog", savelog); //渠道每日注册 if (data.ContainsKey("n4")) { MongodbAccount.Instance.ExecuteIncBykey("day_regedit", "date", DateTime.Now.Date, data["n4"].ToString(), 0); } } } }