protected void Page_Load(object sender, EventArgs e) { string platform = Request.QueryString["platform"]; string channelID = Request.QueryString["channelID"]; string loginKey = Request.QueryString["loginkey"]; if (string.IsNullOrEmpty(loginKey)) { Response.Write(BuildAccount.buildLuaReturn(-1, "data error")); return; } if (string.IsNullOrEmpty(loginKey)) { Response.Write(BuildAccount.buildLuaReturn(-1, "data error")); return; } if (string.IsNullOrEmpty(channelID)) { Response.Write(BuildAccount.buildLuaReturn(-1, "data error")); return; } loginKey = Encoding.Default.GetString(Convert.FromBase64String(loginKey)); string decryptStr = AESHelper.AESDecrypt(loginKey, AES_KEY); string[] subString = decryptStr.Split(':'); if (subString.Length < 2) { Response.Write(BuildAccount.buildLuaReturn(-1, "data error")); return; } string token = subString[0]; string sign = subString[1]; string remoteIP = Request.ServerVariables.Get("Remote_Addr").ToString(); string url = string.Format("http://zhibo.v.baidu.com/token/tokencheck/?token={0}&ip={1}&sign={2}", token, remoteIP, sign); byte[] bytes = HttpPost.Get(new Uri(url)); if (bytes == null) { Response.Write(BuildAccount.buildLuaReturn(-2, "http error")); return; } string result = Encoding.UTF8.GetString(bytes); BaiduResult baiduResult = JsonHelper.ParseFromStr <BaiduResult>(result); if (baiduResult.result == 0) { checkAccount(baiduResult, channelID); } else { Response.Write(BuildAccount.buildLuaReturn(-3, "check error")); } }
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\"};"); }
protected void Page_Load(object sender, EventArgs e) { string platform = Request.Form["platform"]; string acc = Request.Form["acc"]; string logintime = Request.Form["logintime"]; string deviceID = Request.Form["deviceID"]; string channelID = Request.Form["channelID"]; if (string.IsNullOrEmpty(platform)) { Response.Write(Helper.buildLuaReturn(-1, "platform is empty")); return; } if (string.IsNullOrEmpty(acc)) { Response.Write(Helper.buildLuaReturn(-1, "acc is empty")); return; } if (string.IsNullOrEmpty(logintime)) { Response.Write(Helper.buildLuaReturn(-1, "logintime is empty")); return; } //if (string.IsNullOrEmpty(deviceID)) //{ // Response.Write(Helper.buildLuaReturn(-1, "deviceID is empty")); // return; //} //string rsakey = Encoding.Default.GetString(Convert.FromBase64String(loginkey)); //rsakey = AESHelper.AESDecrypt(rsakey, AES_KEY); //string source = string.Format("username={0}&appkey=3f2fadb37dd503fe686cdfb33ab8c095&logintime={1}", acc, logintime); //if (Helper.checkMD5(source, sign)) { string acc_table = "shuanglong_acc"; string pwd = Helper.getMD5("123456"); //判断是否存在帐号 if (MongodbAccount.Instance.KeyExistsBykey(acc_table, "acc", acc)) { //检测帐号是否能登陆 int retCode = tryLogin(acc, pwd, acc_table); if (retCode == 0) { Random rd = new Random(); int randkey = rd.Next(); Dictionary <string, object> updata = new Dictionary <string, object>(); DateTime now = DateTime.Now; updata["randkey"] = randkey; updata["lasttime"] = now.Ticks; updata["lastip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); string strerr = MongodbAccount.Instance.ExecuteUpdate(acc_table, "acc", acc, updata); if (strerr != "") { Response.Write(BuildAccount.buildLuaReturn(-11, "server error")); } else { RSAHelper rsa = new RSAHelper(); //rsa.setModulus(rsakey); string clientkey = randkey.ToString() + ":" + now.Ticks.ToString(); Response.Write(BuildAccount.buildLuaReturn(0, AESHelper.AESEncrypt(clientkey, AES_KEY))); Dictionary <string, object> savelog = new Dictionary <string, object>(); savelog["acc"] = acc; savelog["acc_real"] = acc; savelog["ip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); savelog["time"] = now; savelog["acc_dev"] = deviceID; savelog["channelID"] = channelID; MongodbAccount.Instance.ExecuteInsert("LoginLog", savelog); } } else { Response.Write(BuildAccount.buildLuaReturn(retCode, "acc error")); } } else { //注册新帐号 Random rd = new Random(); int randkey = rd.Next(); Dictionary <string, object> updata = new Dictionary <string, object>(); updata["acc"] = acc; updata["pwd"] = 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(acc_table, "acc", acc, updata); if (strerr != "") { Response.Write(BuildAccount.buildLuaReturn(-11, "server error")); } else { RSAHelper rsa = new RSAHelper(); //rsa.setModulus(rsakey); string clientkey = randkey.ToString() + ":" + now.Ticks.ToString(); Response.Write(BuildAccount.buildLuaReturn(0, AESHelper.AESEncrypt(clientkey, AES_KEY))); Dictionary <string, object> savelog = new Dictionary <string, object>(); savelog["acc"] = acc; savelog["acc_real"] = acc; savelog["ip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); savelog["time"] = now; savelog["acc_dev"] = deviceID; savelog["channelID"] = channelID; MongodbAccount.Instance.ExecuteInsert("RegisterLog", savelog); MongodbAccount.Instance.ExecuteInsert("LoginLog", savelog); } } } //else //{ // Response.Write(Helper.buildLuaReturn(-2, "sign is error")); // return; //} }
protected void Page_Load(object sender, EventArgs e) { try { string platform = Request.Form["platform"]; string loginKey = Request.Form["loginkey"]; string deviceID = Request.Form["DeviceID"]; if (string.IsNullOrEmpty(deviceID)) { deviceID = ""; } if (string.IsNullOrEmpty(loginKey)) { Response.Write(BuildAccount.buildLuaReturn(-1, "data error")); return; } string dataStr = Encoding.Default.GetString(Convert.FromBase64String(loginKey)); dataStr = AESHelper.AESDecrypt(dataStr, AES_KEY); string[] data = dataStr.Split(':'); if (data.Length < 3) { Response.Write(BuildAccount.buildLuaReturn(-2, "data error")); return; } string acc = data[0]; string pwd = data[1]; string rsakey = data[2]; //帐号表 string acc_table = "cgamebt_acc";//ConfigurationManager.AppSettings["acc_cgamebt"]; //List<IMongoQuery> imqs = new List<IMongoQuery>(); //imqs.Add(Query.EQ("acc", acc)); //imqs.Add(Query.EQ("platform", platform)); //判断是否存在帐号 if (MongodbAccount.Instance.KeyExistsBykey(acc_table, "acc", acc)) { //检测帐号是否能登陆 int retCode = tryLogin(acc, pwd, acc_table); if (retCode == 0) { Random rd = new Random(); int randkey = rd.Next(); Dictionary <string, object> updata = new Dictionary <string, object>(); DateTime now = DateTime.Now; updata["randkey"] = randkey; updata["lasttime"] = now.Ticks; updata["lastip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); string strerr = MongodbAccount.Instance.ExecuteUpdate(acc_table, "acc", acc, updata); if (strerr != "") { Response.Write(BuildAccount.buildLuaReturn(-11, "server error")); } else { RSAHelper rsa = new RSAHelper(); rsa.setModulus(rsakey); string clientkey = randkey.ToString() + ":" + now.Ticks.ToString(); Response.Write(BuildAccount.buildLuaReturn(0, AESHelper.AESEncrypt(clientkey, AES_KEY))); Dictionary <string, object> savelog = new Dictionary <string, object>(); savelog["acc"] = acc; savelog["acc_real"] = acc; savelog["ip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); savelog["time"] = now; savelog["DeviceID"] = deviceID; MongodbAccount.Instance.ExecuteInsert("LoginLog", savelog); } } else { Response.Write(BuildAccount.buildLuaReturn(retCode, "acc error")); } } else { //注册新帐号 Random rd = new Random(); int randkey = rd.Next(); Dictionary <string, object> updata = new Dictionary <string, object>(); updata["acc"] = acc; updata["pwd"] = 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(acc_table, "acc", acc, updata); if (strerr != "") { Response.Write(BuildAccount.buildLuaReturn(-11, "server error")); } else { RSAHelper rsa = new RSAHelper(); rsa.setModulus(rsakey); string clientkey = randkey.ToString() + ":" + now.Ticks.ToString(); Response.Write(BuildAccount.buildLuaReturn(0, AESHelper.AESEncrypt(clientkey, AES_KEY))); Dictionary <string, object> savelog = new Dictionary <string, object>(); savelog["acc"] = acc; savelog["acc_real"] = acc; savelog["ip"] = Request.ServerVariables.Get("Remote_Addr").ToString(); savelog["time"] = now; savelog["DeviceID"] = deviceID; MongodbAccount.Instance.ExecuteInsert("LoginLog", savelog); } } } catch (Exception ex) { Response.Write(BuildAccount.buildLuaReturn(-1, ex.Message)); } }
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); } } } }
protected void Page_Load(object sender, EventArgs e) { string phoneNum = Request.QueryString["phonenum"]; if (string.IsNullOrEmpty(phoneNum)) { Response.Write(Helper.buildLuaReturn(-2, "err_not_phone"));//号码错误 return; } string phoneCode = Request.QueryString["phonecode"]; if (string.IsNullOrEmpty(phoneCode)) { Response.Write(Helper.buildLuaReturn(-2, "err_not_phone"));//号码错误 return; } phoneNum = Encoding.Default.GetString(Convert.FromBase64String(phoneNum)); phoneNum = AESHelper.AESDecrypt(phoneNum, AES_KEY); //aes解密 phoneCode = Encoding.Default.GetString(Convert.FromBase64String(phoneCode)); phoneCode = AESHelper.AESDecrypt(phoneCode, AES_KEY); //aes解密 List <IMongoQuery> lmq = new List <IMongoQuery>(); lmq.Add(Query.EQ("phoneNum", phoneNum)); lmq.Add(Query.EQ("phoneCode", phoneCode)); Dictionary <string, object> data = MongodbAccount.Instance.ExecuteGetByQuery("BaiduPhoneCode", Query.And(lmq), new string[] { "lastSendTime" }); if (data == null) { Response.Write(Helper.buildLuaReturn(-2, "err_not_phone"));//号码错误 return; } string password = BuildAccount.getAutoPassword(6); string passwordMD5 = AESHelper.MD5Encrypt(password); updateAccountInfos(phoneNum, passwordMD5); //获取帐号信息 List <AccountInfo> accounts = getAccountInfos(phoneNum); //没有帐号 if (accounts.Count == 0) { Response.Write(Helper.buildLuaReturn(-2, "err_not_phone"));//号码错误 return; } else { StringBuilder sb = new StringBuilder(); sb.Append("local ret = {{}};"); sb.Append("ret.code = 0;"); sb.Append("ret.msg = \"\";"); sb.Append("ret.data = {{}};"); for (int i = 0; i < accounts.Count; i++) { string pwd = AESHelper.AESEncrypt(password, AES_KEY); sb.AppendFormat("ret.data[{0}] = {{acc=\"{1}\",pwd=\"{2}\"}};", i + 1, accounts[i].account, pwd); } sb.Append("return ret;"); Response.Write(sb.ToString()); } }