/// <summary> /// 是否有绑定DeviceID /// </summary> /// <returns></returns> public static SnsCenterUser GetUserByDeviceId(string imei) { if (string.IsNullOrEmpty(imei) || imei.StartsWith("00:00:00:00:00:")) { imei = Guid.NewGuid().ToString("N"); } var command = ConnectManager.Provider.CreateCommandStruct("SnsUserInfo", CommandMode.Inquiry); command.OrderBy = "USERID ASC"; command.Columns = "PassportId,PassportPwd,PwdType,RegType"; command.Filter = ConnectManager.Provider.CreateCommandFilter(); command.Filter.Condition = command.Filter.FormatExpression("DeviceID"); command.Filter.AddParam("DeviceID", imei); command.Parser(); using (var aReader = ConnectManager.Provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters)) { if (aReader.Read()) { string password = Convert.ToString(aReader["PassportPwd"]); SnsCenterUser user = new SnsCenterUser(Convert.ToString(aReader["PassportId"]), password, imei); user.RegType = (RegType)Enum.ToObject(typeof(RegType), Convert.ToInt32(aReader["RegType"])); return(user); } } return(null); }
/// <summary> /// 获取通行证 /// </summary> /// <param name="imei">if null then get new pid</param> /// <param name="isNew"></param> /// <param name="encodeFunc"></param> /// <returns></returns> public static string[] GetRegPassport(string imei, bool isNew = false, Func<string, string> encodeFunc = null) { if (!SnsCenterUser.CheckDevice(imei)) throw (new Exception("禁止登入")); var list = new List<string>(); SnsUser user = new SnsCenterUser().GetUserByDeviceId(imei); string passportId = string.Empty; if (!isNew && user.UserId > 0) { passportId = user.PassportId; if (user.RegType == RegType.Guest) { //客户端换包重新获取游客账号,密码需要重置 string password = GetRandomPwd(); user.Password = encodeFunc != null ? encodeFunc(password) : password; var sns = new SnsCenterUser(user.PassportId, password, imei); sns.ChangePass(user.UserId.ToString(), true); } else { if (encodeFunc != null) user.Password = encodeFunc(user.Password); } list.Add(passportId); list.Add(user.Password); } else { PassportExpired passportExpired; if (isNew || !imeiMap.TryGetValue(imei, out passportExpired)) { passportId = new SnsPassport().GetRegPassport(); imeiMap[passportId] = new PassportExpired(passportId); } else { passportId = passportExpired.Pid; if (passportExpired.ExpiredTime < DateTime.Now) { //过期移除 imeiMap.TryRemove(imei, out passportExpired); } //检查超出 List<string> expiredMap; if (imeiMap.Count > 100 && ((expiredMap = imeiMap.Where(t => t.Value.ExpiredTime < DateTime.Now).Select(t => t.Key).ToList()).Count > 10)) { foreach (var expired in expiredMap) { imeiMap.TryRemove(expired, out passportExpired); } } } string password = GetRandomPwd(); if (encodeFunc != null) password = encodeFunc(password); list.Add(passportId); list.Add(password); } return list.ToArray(); }
/// <summary> /// 登录 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <param name="userType"></param> /// <param name="isCustom">use custom passport</param> /// <returns></returns> public static long LoginByDevice(string user, string password, string imei, out RegType userType, bool isCustom = false) { if (!SnsCenterUser.CheckDevice(imei)) { throw (new Exception("禁止登录")); } long userId = 0; try { var snsCenterUser = new SnsCenterUser(user, password, imei); var snsUser = snsCenterUser.GetUserInfo(user); if (snsUser == null || snsUser.UserId <= 0) { Guid gid; userType = Guid.TryParse(password, out gid) ? RegType.Guest : RegType.Normal; snsCenterUser.RegType = userType; userId = snsCenterUser.InsertSnsUser(isCustom); //过期移除 PassportExpired passportExpired; bool result = string.IsNullOrEmpty(imei) ? imeiMap.TryRemove(user, out passportExpired) : imeiMap.TryRemove(imei, out passportExpired); return(userId); } userType = snsUser.RegType; if (snsCenterUser.ValidatePassport(snsUser)) { return(snsUser.UserId); } } finally { SnsCenterUser.AddLoginLog(imei, user); } return(userId); }
/// <summary> /// 登录 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <returns></returns> public static int LoginByDevice(string user, string password, string imei) { if (!SnsCenterUser.CheckDevice(imei)) { throw (new Exception("禁止登录")); } int userId = 0; var snsCenterUser = new SnsCenterUser(user, password, imei); var snsUser = snsCenterUser.GetUserInfo(user); if (snsUser == null || snsUser.UserId <= 0) { userId = snsCenterUser.InsertSnsUser(); SnsCenterUser.AddLoginLog(imei, user); //过期移除 PassportExpired passportExpired; imeiMap.TryRemove(imei, out passportExpired); return(userId); } if (snsCenterUser.ValidatePassport(snsUser)) { return(snsUser.UserId); } SnsCenterUser.AddLoginLog(imei, user); return(userId); }
/// <summary> /// 通道商验证登录 /// </summary> /// <param name="retailId"></param> /// <param name="retailUser"></param> /// <returns></returns> public static string[] LoginByRetail(string retailId, string retailUser) { string[] result = new string[2]; SnsCenterUser snsCenterUser = new SnsCenterUser(); var snsuser = snsCenterUser.GetUserInfo(retailId, retailUser); if (snsuser.UserId <= 0) { //自动获取通行证 SnsPassport passport = new SnsPassport(); string pid = passport.GetRegPassport(); string pwd = passport.GetRandomPwd(); //modify login of retail bug. snsCenterUser = new SnsCenterUser(pid, pwd, string.Empty) { RetailID = retailId, RetailUser = retailUser }; result[0] = snsCenterUser.InsertSnsUser().ToString(); result[1] = pid; return(result); } result[0] = snsuser.UserId.ToString(); result[1] = snsuser.PassportId; return(result); }
/// <summary> /// 是否有绑定DeviceID /// </summary> /// <returns></returns> public static SnsCenterUser GetUserByDeviceID(string deviceID) { if (deviceID.Length == 0 || deviceID.StartsWith("00:00:00:00:00:")) { deviceID = Guid.NewGuid().ToString(); } string sGetSql = "select top 1 PassportId, PassportPwd,PwdType, RegType from SnsUserInfo where DeviceID=@DeviceID"; List <SqlParameter> listTmp = new List <SqlParameter>(); listTmp.Add(SqlParamHelper.MakeInParam("@DeviceID", SqlDbType.VarChar, 0, deviceID)); SqlParameter[] paramsGet = listTmp.ToArray(); using (SqlDataReader aReader = SqlHelper.ExecuteReader(config.connectionString, CommandType.Text, sGetSql, paramsGet)) { if (aReader.Read()) { PwdType pwdType = (PwdType)Enum.ToObject(typeof(PwdType), Convert.ToInt32(aReader["PwdType"])); string password = Convert.ToString(aReader["PassportPwd"]); if (pwdType == PwdType.MD5) { password = CryptoHelper.DES_Encrypt(password, GameEnvironment.ProductDesEnKey); } SnsCenterUser user = new SnsCenterUser(Convert.ToString(aReader["PassportId"]), password, deviceID); user.RegType = (RegType)Enum.ToObject(typeof(RegType), Convert.ToInt32(aReader["RegType"])); return(user); } } return(null); }
/// <summary> /// 是否有绑定DeviceID /// </summary> /// <returns></returns> public static SnsCenterUser GetUserByDeviceID(string deviceID) { if (deviceID.Length == 0 || deviceID.StartsWith("00:00:00:00:00:")) { deviceID = Guid.NewGuid().ToString(); } var command = ConnectManager.Provider.CreateCommandStruct("SnsUserInfo", CommandMode.Inquiry); command.OrderBy = "USERID ASC"; command.Columns = "PassportId,PassportPwd,PwdType,RegType"; command.Filter = ConnectManager.Provider.CreateCommandFilter(); command.Filter.Condition = command.Filter.FormatExpression("DeviceID"); command.Filter.AddParam("DeviceID", deviceID); command.Parser(); using (var aReader = ConnectManager.Provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters)) { if (aReader.Read()) { PwdType pwdType = (PwdType)Enum.ToObject(typeof(PwdType), Convert.ToInt32(aReader["PwdType"])); string password = Convert.ToString(aReader["PassportPwd"]); //if (pwdType == PwdType.MD5) //{ // password = CryptoHelper.DES_Encrypt(password, GameEnvironment.Setting.ProductDesEnKey); //} SnsCenterUser user = new SnsCenterUser(Convert.ToString(aReader["PassportId"]), password, deviceID); user.RegType = (RegType)Enum.ToObject(typeof(RegType), Convert.ToInt32(aReader["RegType"])); return(user); } } return(null); }
/// <summary> /// 检查通行证密码 /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <returns></returns> public static bool CheckPassportPwd(string pid, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, string.Empty); var snsuser = snsCenterUser.GetUserInfo(pid); return(snsCenterUser.ValidatePassport(snsuser)); }
/// <summary> /// 记录进入游戏服 /// </summary> /// <param name="sns"></param> public static void AddGameServerLoginLog(SnsUser sns, int serverId) { if (sns == null) { return; } // SnsCenterUser.AddGameServerLoginLog(sns, serverId); }
/// <summary> /// 注册 /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <param name="isCustom">use custom passport</param> /// <returns></returns> public static bool Register(string pid, string password, string imei, bool isCustom = false) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, imei); var snsuser = snsCenterUser.GetUserInfo(pid); if (snsuser.UserId <= 0) { return(snsCenterUser.InsertSnsUser(isCustom) > 0); } return(true); }
/// <summary> /// 注册 /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <returns></returns> public static bool Register(string pid, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, string.Empty); var snsuser = snsCenterUser.GetUserInfo(pid); if (snsuser.UserId <= 0) { return(snsCenterUser.InsertSnsUser() > 0); } return(true); }
private static int DoRegisterPassport(string passportId, string password, string[] paramNames, string[] paramValues) { SnsCenterUser snsCenterUser = new SnsCenterUser(passportId, password, string.Empty); var snsuser = snsCenterUser.GetUserInfo(passportId); if (snsuser.UserId > 0) { return(0); } return(snsCenterUser.InsertSnsUser(paramNames, paramValues)); }
private static long DoRegisterPassport(string passportId, string password, string imei, string[] paramNames, string[] paramValues, out int userType, bool isCustom) { SnsCenterUser snsCenterUser = new SnsCenterUser(passportId, password, imei); var snsuser = snsCenterUser.GetUserInfo(passportId); userType = (int)snsCenterUser.RegType; if (snsuser.UserId > 0) { return(0); } return(snsCenterUser.InsertSnsUser(paramNames, paramValues, isCustom)); }
/// <summary> /// 注册 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <returns></returns> public static bool Register(string user, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(user, password, string.Empty); if (snsCenterUser.GetUserId() == 0) { return snsCenterUser.InsertSnsUser() > 0; } else { return true; } }
/// <summary> /// 注册 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <returns></returns> public static bool Register(string user, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(user, password, string.Empty); if (snsCenterUser.GetUserId() == 0) { return(snsCenterUser.InsertSnsUser() > 0); } else { return(true); } }
/// <summary> /// 获取通行证 /// </summary> /// <param name="imei">if null then get new pid</param> /// <returns></returns> public static string[] GetRegPassport(string imei) { if (!SnsCenterUser.CheckDevice(imei)) { throw (new Exception("禁止登入")); } var list = new List <string>(); SnsCenterUser user = SnsCenterUser.GetUserByDeviceId(imei); string passportId = string.Empty; if (user != null) { passportId = user.PassportId; list.Add(passportId); list.Add(user.Password); } else { SnsPassport passport = new SnsPassport(); PassportExpired passportExpired; if (!imeiMap.TryGetValue(imei, out passportExpired)) { passportId = passport.GetRegPassport(); imeiMap[imei] = new PassportExpired(passportId); } else { passportId = passportExpired.Pid; if (passportExpired.ExpiredTime < DateTime.Now) { //过期移除 imeiMap.TryRemove(imei, out passportExpired); } //检查超出 List <string> expiredMap; if (imeiMap.Count > 100 && ((expiredMap = imeiMap.Where(t => t.Value.ExpiredTime < DateTime.Now).Select(t => t.Key).ToList()).Count > 10)) { foreach (var expired in expiredMap) { imeiMap.TryRemove(expired, out passportExpired); } } } string password = passport.GetRandomPwd(); list.Add(passportId); list.Add(password); } return(list.ToArray()); }
/// <summary> /// 注册 /// </summary> /// <param name="password"></param> /// <param name="paramNames"></param> /// <param name="paramValues"></param> /// <returns></returns> public static string RegisterPassport(string password, string[] paramNames, string[] paramValues) { string pid = new SnsPassport().GetRegPassport(); SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, string.Empty); if (snsCenterUser.InsertSnsUser(paramNames, paramValues) > 0) { return(pid); } else { return(string.Empty); } }
/// <summary> /// 登录 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <param name="deviceID"></param> /// <returns></returns> public static int LoginByDevice(string user, string password, string deviceID) { if (!SnsCenterUser.CheckDevice(deviceID)) { throw (new Exception("禁止登录")); } SnsCenterUser snsCenterUser = new SnsCenterUser(user, password, deviceID); int userID = snsCenterUser.GetUserId(); if (userID == 0 && !snsCenterUser.IsExist()) { userID = snsCenterUser.InsertSnsUser(); } SnsCenterUser.AddLoginLog(deviceID, user); return(userID); }
/// <summary> /// /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <param name="deviceID"></param> /// <param name="openId"></param> /// <returns>0:失败, 1:成功 2:已绑定</returns> public static int RegisterWeixin(string pid, string password, string deviceID, string openId) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, deviceID); if (snsCenterUser.GetUserId() > 0) { if (string.IsNullOrEmpty(snsCenterUser.WeixinCode)) { SnsUser snsuser = new SnsUser() { PassportId = pid, WeixinCode = openId }; return(snsCenterUser.ChangeUserInfo(pid, snsuser) > 0 ? 1 : 0); } return(2); } return(0); }
/// <summary> /// /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <param name="openId"></param> /// <returns>0:失败, 1:成功 2:已绑定</returns> public static int RegisterWeixin(string pid, string password, string imei, string openId) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, imei); var snsuser = snsCenterUser.GetUserInfo(pid); if (snsuser.UserId > 0) { if (string.IsNullOrEmpty(snsuser.WeixinCode)) { return(snsCenterUser.ChangeUserInfo(pid, new SnsUser() { PassportId = pid, WeixinCode = openId }) > 0 ? 1 : 0); } return(2); } return(0); }
/// <summary> /// 通道商验证登录 /// </summary> /// <param name="retailID"></param> /// <param name="retailUser"></param> /// <returns></returns> public static string[] LoginByRetail(string retailID, string retailUser) { string[] sArr = new string[2]; SnsCenterUser snsCenterUser = new SnsCenterUser() { RetailID = retailID, RetailUser = retailUser }; int userID = snsCenterUser.GetUserId(); if (userID == 0 && !snsCenterUser.IsExistRetail()) { userID = snsCenterUser.InsertSnsUser(); } sArr[0] = userID.ToString(); sArr[1] = snsCenterUser.PassportId; return(sArr); }
/// <summary> /// 获取通行证 /// </summary> /// <param name="imei">if null then get new pid</param> /// <returns></returns> public static string[] GetRegPassport(string imei) { if (!SnsCenterUser.CheckDevice(imei)) { throw (new Exception("禁止登入")); } var list = new List <string>(); SnsCenterUser user = SnsCenterUser.GetUserByDeviceId(imei); if (user != null) { list.Add(user.PassportId); list.Add(user.Password); } else { SnsPassport passport = new SnsPassport(); string password = passport.GetRandomPwd(); list.Add(passport.GetRegPassport()); list.Add(password); } return(list.ToArray()); }
/// <summary> /// 获取通行证 /// </summary> /// <param name="deviceID"></param> /// <returns></returns> public static string[] GetRegPassport(string deviceID) { if (!SnsCenterUser.CheckDevice(deviceID)) { throw (new Exception("禁止登入")); } List <string> list = new List <string>(); SnsCenterUser user = SnsCenterUser.GetUserByDeviceID(deviceID); if (user != null) { list.Add(user.PassportId); list.Add(user.Password); } else { SnsPassport passport = new SnsPassport(); string password = passport.GetRandomPwd(); list.Add(passport.GetRegPassport()); list.Add(CryptoHelper.DES_Encrypt(password, GameEnvironment.ProductDesEnKey)); } return(list.ToArray()); }
/// <summary> /// 是否有绑定DeviceID /// </summary> /// <returns></returns> public static SnsCenterUser GetUserByDeviceID(string deviceID) { if (deviceID.Length == 0 || deviceID.StartsWith("00:00:00:00:00:")) { deviceID = Guid.NewGuid().ToString(); } var command = ConnectManager.Provider.CreateCommandStruct("SnsUserInfo", CommandMode.Inquiry); command.OrderBy = "USERID ASC"; command.Columns = "PassportId,PassportPwd,PwdType,RegType"; command.Filter = ConnectManager.Provider.CreateCommandFilter(); command.Filter.Condition = command.Filter.FormatExpression("DeviceID"); command.Filter.AddParam("DeviceID", deviceID); command.Parser(); using (var aReader = ConnectManager.Provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters)) { if (aReader.Read()) { PwdType pwdType = (PwdType)Enum.ToObject(typeof(PwdType), Convert.ToInt32(aReader["PwdType"])); string password = Convert.ToString(aReader["PassportPwd"]); if (pwdType == PwdType.MD5) { password = CryptoHelper.DES_Encrypt(password, GameEnvironment.ProductDesEnKey); } SnsCenterUser user = new SnsCenterUser(Convert.ToString(aReader["PassportId"]), password, deviceID); user.RegType = (RegType)Enum.ToObject(typeof(RegType), Convert.ToInt32(aReader["RegType"])); return user; } } return null; }
/// <summary> /// 通道商验证登录 /// </summary> /// <param name="retailID"></param> /// <param name="retailUser"></param> /// <returns></returns> public static string[] LoginByRetail(string retailID, string retailUser) { string[] sArr = new string[2]; SnsCenterUser snsCenterUser = new SnsCenterUser() { RetailID = retailID, RetailUser = retailUser }; int userID = snsCenterUser.GetUserId(); if (userID == 0 && !snsCenterUser.IsExistRetail()) { userID = snsCenterUser.InsertSnsUser(); } sArr[0] = userID.ToString(); sArr[1] = snsCenterUser.PassportId; return sArr; }
/// <summary> /// 检查通行证密码 /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <returns></returns> public static bool CheckPassportPwd(string pid, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, string.Empty); return(snsCenterUser.GetUserId() > 0); }
/// <summary> /// 记录上一次登录服 /// </summary> /// <returns></returns> public static int RecordLastsevid(string userId, int lastsevid) { SnsCenterUser snsCenterUser = new SnsCenterUser(); return(snsCenterUser.RecordLastsevid(userId, lastsevid)); }
/// <summary> /// 检查通行证密码 /// </summary> /// <param name="passportId"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <returns></returns> public static bool CheckPassword(string passportId, string password, string imei = "") { SnsCenterUser snsCenterUser = new SnsCenterUser(passportId, password, imei); var snsuser = snsCenterUser.GetUserInfo(passportId); return snsCenterUser.ValidatePassport(snsuser); }
/// <summary> /// 记录登录服 /// </summary> /// <returns></returns> public static int RecordServerId(string userId, string serverId) { SnsCenterUser snsCenterUser = new SnsCenterUser(); return(snsCenterUser.RecordServerId(userId, serverId)); }
/// <summary> /// 登录 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <param name="deviceID"></param> /// <returns></returns> public static int LoginByDevice(string user, string password, string deviceID) { if (!SnsCenterUser.CheckDevice(deviceID)) throw (new Exception("禁止登录")); SnsCenterUser snsCenterUser = new SnsCenterUser(user, password, deviceID); int userID = snsCenterUser.GetUserId(); if (userID == 0 && !snsCenterUser.IsExist()) { userID = snsCenterUser.InsertSnsUser(); } SnsCenterUser.AddLoginLog(deviceID, user); return userID; }
/// <summary> /// 修改密码 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <returns></returns> public static int ChangePassword(string user, string password, string imei = "") { SnsCenterUser snsCenterUser = new SnsCenterUser(user, password, imei); return snsCenterUser.ChangePassword(user); }
/// <summary> /// 修改密码 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <returns></returns> public static int ChangePass(string user, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(user, password, string.Empty); return(snsCenterUser.ChangePass(user)); }
/// <summary> /// 获取用户类型 /// </summary> /// <param name="user"></param> /// <returns></returns> public static int GetUserType(string user) { SnsCenterUser snsCenterUser = new SnsCenterUser(user, string.Empty, string.Empty); return((int)snsCenterUser.GetUserType()); }
/// <summary> /// /// </summary> /// <param name="openId"></param> /// <returns></returns> public static SnsUser LoginByWeixin(string openId) { SnsCenterUser snsCenterUser = new SnsCenterUser(); return(snsCenterUser.GetUserByWeixin(openId)); }
/// <summary> /// 检查通行证密码 /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <returns></returns> public static bool CheckPassportPwd(string pid, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, string.Empty); return snsCenterUser.GetUserId() > 0; }
/// <summary> /// 增加空密码处理 /// 修改:伍张发 /// </summary> /// <returns></returns> public int GetUserId() { RegType regType = RegType; PwdType pwdType = PwdType.DES; SetLoginType(ref regType, ref pwdType, PassportId); var command = ConnectManager.Provider.CreateCommandStruct("SnsUserInfo", CommandMode.Inquiry); command.OrderBy = "USERID ASC"; command.Columns = "USERID,PASSPORTID,DEVICEID,REGTYPE,RETAILID,RETAILUSER,WEIXINCODE"; command.Filter = ConnectManager.Provider.CreateCommandFilter(); string password = _PassportPwd; if (regType == RegType.Normal) { if (pwdType == PwdType.MD5) { password = CryptoHelper.DES_Decrypt(password, GameEnvironment.ProductDesEnKey); password = PasswordEncryptMd5(password); } command.Filter.Condition = string.Format("{0} AND {1}", command.Filter.FormatExpression("PassportId"), command.Filter.FormatExpression("PassportPwd") ); command.Filter.AddParam("PassportId", _PassportId); command.Filter.AddParam("PassportPwd", password); } else if (regType == RegType.Guest) { if (pwdType == PwdType.MD5) { password = CryptoHelper.DES_Decrypt(password, GameEnvironment.ProductDesEnKey); if (password.Length != 32) { //判断是否已经MD5加密 password = PasswordEncryptMd5(password); } } command.Filter.Condition = string.Format("{0} AND {1} AND {2} AND {3}", command.Filter.FormatExpression("DeviceID"), command.Filter.FormatExpression("PassportPwd"), command.Filter.FormatExpression("PassportId"), command.Filter.FormatExpression("RegType") ); command.Filter.AddParam("DeviceID", _deviceID); command.Filter.AddParam("PassportPwd", password); command.Filter.AddParam("PassportId", _PassportId); command.Filter.AddParam("RegType", (int)regType); } else { command.Filter.Condition = string.Format("{0} AND {1}", command.Filter.FormatExpression("RetailID"), command.Filter.FormatExpression("RetailUser") ); command.Filter.AddParam("RetailID", RetailID); command.Filter.AddParam("RetailUser", RetailUser); } command.Parser(); using (var aReader = ConnectManager.Provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters)) { SnsCenterUser user = new SnsCenterUser(); if (aReader.Read()) { try { _userid = Convert.ToInt32(aReader["userid"]); _PassportId = aReader["PassportId"].ToString(); _deviceID = aReader["DeviceID"].ToNotNullString(); RegType = aReader["RegType"].ToEnum<RegType>(); RetailID = aReader["RetailID"].ToNotNullString(); RetailUser = aReader["RetailUser"].ToNotNullString(); WeixinCode = aReader["WeixinCode"].ToNotNullString(); } catch (Exception ex) { TraceLog.WriteError("GetUserId method error:{0}, sql:{0}", ex, command.Sql); } return _userid; } else { return 0; } } }
/// <summary> /// 补全用户信息 /// </summary> /// <param name="pid"></param> /// <param name="snsuser"></param> /// <returns></returns> public static int ChangeUserInfo(string pid, SnsUser snsuser) { SnsCenterUser snsCenterUser = new SnsCenterUser(); return(snsCenterUser.ChangeUserInfo(pid, snsuser)); }
/// <summary> /// 是否有绑定DeviceID /// </summary> /// <returns></returns> public static SnsCenterUser GetUserByDeviceId(string imei) { if (string.IsNullOrEmpty(imei) || imei.StartsWith("00:00:00:00:00:")) { imei = Guid.NewGuid().ToString("N"); } var command = ConnectManager.Provider.CreateCommandStruct("SnsUserInfo", CommandMode.Inquiry); command.OrderBy = "USERID ASC"; command.Columns = "PassportId,PassportPwd,PwdType,RegType"; command.Filter = ConnectManager.Provider.CreateCommandFilter(); command.Filter.Condition = command.Filter.FormatExpression("DeviceID"); command.Filter.AddParam("DeviceID", imei); command.Parser(); using (var aReader = ConnectManager.Provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters)) { if (aReader.Read()) { string password = Convert.ToString(aReader["PassportPwd"]); SnsCenterUser user = new SnsCenterUser(Convert.ToString(aReader["PassportId"]), password, imei); user.RegType = (RegType)Enum.ToObject(typeof(RegType), Convert.ToInt32(aReader["RegType"])); return user; } } return null; }
/// <summary> /// /// </summary> /// <param name="openId"></param> /// <returns></returns> public static SnsUser LoginByWeixin(string openId) { SnsCenterUser snsCenterUser = new SnsCenterUser(); return snsCenterUser.GetUserByWeixin(openId); }
/// <summary> /// 注册 /// </summary> /// <param name="password"></param> /// <param name="paramNames"></param> /// <param name="paramValues"></param> /// <returns></returns> public static string RegisterPassport(string password, string[] paramNames, string[] paramValues) { string pid = new SnsPassport().GetRegPassport(); SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, string.Empty); if (snsCenterUser.InsertSnsUser(paramNames, paramValues) > 0) { return pid; } else { return string.Empty; } }
/// <summary> /// 修改密码 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <returns></returns> public static int ChangePass(string user, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(user, password, string.Empty); return snsCenterUser.ChangePass(user); }
/// <summary> /// 补全用户信息 /// </summary> /// <param name="pid"></param> /// <param name="snsuser"></param> /// <returns></returns> public static int ChangeUserInfo(string pid, SnsUser snsuser) { SnsCenterUser snsCenterUser = new SnsCenterUser(); return snsCenterUser.ChangeUserInfo(pid, snsuser); }
/// <summary> /// /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <param name="deviceID"></param> /// <param name="openId"></param> /// <returns>0:失败, 1:成功 2:已绑定</returns> public static int RegisterWeixin(string pid, string password, string deviceID, string openId) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, deviceID); if (snsCenterUser.GetUserId() > 0) { if (string.IsNullOrEmpty(snsCenterUser.WeixinCode)) { SnsUser snsuser = new SnsUser() { PassportId = pid, WeixinCode = openId }; return snsCenterUser.ChangeUserInfo(pid, snsuser) > 0 ? 1 : 0; } return 2; } return 0; }
/// <summary> /// 增加空密码处理 /// 修改:伍张发 /// </summary> /// <returns></returns> public int GetUserId() { RegType regType = RegType; PwdType pwdType = PwdType.DES; SetLoginType(ref regType, ref pwdType, PassportId); var command = ConnectManager.Provider.CreateCommandStruct("SnsUserInfo", CommandMode.Inquiry); command.OrderBy = "USERID ASC"; command.Columns = "USERID,PASSPORTID,DEVICEID,REGTYPE,RETAILID,RETAILUSER,WEIXINCODE"; command.Filter = ConnectManager.Provider.CreateCommandFilter(); string password = _PassportPwd; if (regType == RegType.Normal) { if (pwdType == PwdType.MD5) { password = PasswordEncryptMd5(_PassportPwd); } command.Filter.Condition = string.Format("{0} AND {1}", command.Filter.FormatExpression("PassportId"), command.Filter.FormatExpression("PassportPwd") ); command.Filter.AddParam("PassportId", _PassportId); command.Filter.AddParam("PassportPwd", password); } else if (regType == RegType.Guest) { if (pwdType == PwdType.MD5) { if (password.Length != 32) { //判断是否已经MD5加密 password = PasswordEncryptMd5(_PassportPwd); } } command.Filter.Condition = string.Format("{0} AND {1} AND {2} AND {3}", command.Filter.FormatExpression("DeviceID"), command.Filter.FormatExpression("PassportPwd"), command.Filter.FormatExpression("PassportId"), command.Filter.FormatExpression("RegType") ); command.Filter.AddParam("DeviceID", _deviceID); command.Filter.AddParam("PassportPwd", password); command.Filter.AddParam("PassportId", _PassportId); command.Filter.AddParam("RegType", (int)regType); } else { command.Filter.Condition = string.Format("{0} AND {1}", command.Filter.FormatExpression("RetailID"), command.Filter.FormatExpression("RetailUser") ); command.Filter.AddParam("RetailID", RetailID); command.Filter.AddParam("RetailUser", RetailUser); } command.Parser(); using (var aReader = ConnectManager.Provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters)) { SnsCenterUser user = new SnsCenterUser(); if (aReader.Read()) { try { _userid = Convert.ToInt32(aReader["userid"]); _PassportId = aReader["PassportId"].ToString(); _deviceID = aReader["DeviceID"].ToNotNullString(); RegType = aReader["RegType"].ToEnum <RegType>(); RetailID = aReader["RetailID"].ToNotNullString(); RetailUser = aReader["RetailUser"].ToNotNullString(); WeixinCode = aReader["WeixinCode"].ToNotNullString(); } catch (Exception ex) { TraceLog.WriteError("GetUserId method error:{0}, sql:{0}", ex, command.Sql); } return(_userid); } else { return(0); } } }
/// <summary> /// 获取用户信息 /// </summary> /// <param name="pid"></param> /// <returns></returns> public static SnsUser GetUserInfo(string pid) { SnsCenterUser snsCenterUser = new SnsCenterUser(); return(snsCenterUser.GetUserInfo(pid)); }
/// <summary> /// /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <param name="openId"></param> /// <returns>0:失败, 1:成功 2:已绑定</returns> public static int RegisterWeixin(string pid, string password, string imei, string openId) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, imei); var snsuser = snsCenterUser.GetUserInfo(pid); if (snsuser.UserId > 0) { if (string.IsNullOrEmpty(snsuser.WeixinCode)) { return snsCenterUser.ChangeUserInfo(pid, new SnsUser() { PassportId = pid, WeixinCode = openId }) > 0 ? 1 : 0; } return 2; } return 0; }
/// <summary> /// 注册 /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <returns></returns> public static bool Register(string pid, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, string.Empty); var snsuser = snsCenterUser.GetUserInfo(pid); if (snsuser.UserId <= 0) { return snsCenterUser.InsertSnsUser() > 0; } return true; }
/// <summary> /// 获取用户类型 /// </summary> /// <param name="user"></param> /// <returns></returns> public static int GetUserType(string user) { SnsCenterUser snsCenterUser = new SnsCenterUser(user, string.Empty, string.Empty); return (int)snsCenterUser.GetUserType(); }
private static int DoRegisterPassport(string passportId, string password, string[] paramNames, string[] paramValues) { SnsCenterUser snsCenterUser = new SnsCenterUser(passportId, password, string.Empty); var snsuser = snsCenterUser.GetUserInfo(passportId); if (snsuser.UserId > 0) { return 0; } return snsCenterUser.InsertSnsUser(paramNames, paramValues); }
/// <summary> /// 是否有绑定DeviceID /// </summary> /// <returns></returns> public static SnsCenterUser GetUserByDeviceID(string deviceID) { if (deviceID.Length == 0 || deviceID.StartsWith("00:00:00:00:00:")) { deviceID = Guid.NewGuid().ToString(); } string sGetSql = "select top 1 PassportId, PassportPwd,PwdType, RegType from SnsUserInfo where DeviceID=@DeviceID"; List<SqlParameter> listTmp = new List<SqlParameter>(); listTmp.Add(SqlParamHelper.MakeInParam("@DeviceID", SqlDbType.VarChar, 0, deviceID)); SqlParameter[] paramsGet = listTmp.ToArray(); using (SqlDataReader aReader = SqlHelper.ExecuteReader(config.connectionString, CommandType.Text, sGetSql, paramsGet)) { if (aReader.Read()) { PwdType pwdType = (PwdType)Enum.ToObject(typeof(PwdType), Convert.ToInt32(aReader["PwdType"])); string password = Convert.ToString(aReader["PassportPwd"]); if (pwdType == PwdType.MD5) { password = CryptoHelper.DES_Encrypt(password, GameEnvironment.ProductDesEnKey); } SnsCenterUser user = new SnsCenterUser(Convert.ToString(aReader["PassportId"]), password, deviceID); user.RegType = (RegType)Enum.ToObject(typeof(RegType), Convert.ToInt32(aReader["RegType"])); return user; } } return null; }
/// <summary> /// 登录 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <returns></returns> public static int LoginByDevice(string user, string password, string imei) { if (!SnsCenterUser.CheckDevice(imei)) throw (new Exception("禁止登录")); int userId = 0; var snsCenterUser = new SnsCenterUser(user, password, imei); var snsUser = snsCenterUser.GetUserInfo(user); if (snsUser == null || snsUser.UserId <= 0) { userId = snsCenterUser.InsertSnsUser(); SnsCenterUser.AddLoginLog(imei, user); //过期移除 PassportExpired passportExpired; imeiMap.TryRemove(imei, out passportExpired); return userId; } if (snsCenterUser.ValidatePassport(snsUser)) { return snsUser.UserId; } SnsCenterUser.AddLoginLog(imei, user); return userId; }
/// <summary> /// 增加空密码处理 /// 修改:伍张发 /// </summary> /// <returns></returns> public int GetUserId() { RegType regType = RegType; PwdType pwdType = PwdType.DES; SetLoginType(ref regType, ref pwdType, PassportId); List<SqlParameter> listTmp = new List<SqlParameter>(); string sGetSql = "select top 1 userid,PassportId,DeviceID,RegType,RetailID,RetailUser,WeixinCode from SnsUserInfo "; string password = _PassportPwd; if (regType == RegType.Normal) { if (pwdType == PwdType.MD5) { password = CryptoHelper.DES_Decrypt(password, GameEnvironment.ProductDesEnKey); password = PasswordEncryptMd5(password); } sGetSql += "where PassportId=@aPassportId and PassportPwd=@PassportPwd"; listTmp.Add(SqlParamHelper.MakeInParam("@aPassportId", SqlDbType.VarChar, 0, _PassportId)); listTmp.Add(SqlParamHelper.MakeInParam("@PassportPwd", SqlDbType.VarChar, 0, password)); } else if (regType == RegType.Guest) { if (pwdType == PwdType.MD5) { password = CryptoHelper.DES_Decrypt(password, GameEnvironment.ProductDesEnKey); if (password.Length != 32) { //判断是否已经MD5加密 password = PasswordEncryptMd5(password); } } sGetSql += "where (DeviceID=@DeviceID and PassportPwd=@PassportPwd ) and PassportId=@aPassportId and RegType=@RegType"; listTmp.Add(SqlParamHelper.MakeInParam("@aPassportId", SqlDbType.VarChar, 0, _PassportId)); listTmp.Add(SqlParamHelper.MakeInParam("@DeviceID", SqlDbType.VarChar, 0, _deviceID)); listTmp.Add(SqlParamHelper.MakeInParam("@PassportPwd", SqlDbType.VarChar, 0, password)); listTmp.Add(SqlParamHelper.MakeInParam("@RegType", SqlDbType.Int, 0, (int)regType)); } else { sGetSql += "where RetailID=@RetailID and RetailUser=@RetailUser"; listTmp.Add(SqlParamHelper.MakeInParam("@RetailID", SqlDbType.VarChar, 0, RetailID)); listTmp.Add(SqlParamHelper.MakeInParam("@RetailUser", SqlDbType.VarChar, 0, RetailUser)); } SqlParameter[] paramsGet = listTmp.ToArray(); using (SqlDataReader aReader = SqlHelper.ExecuteReader(config.connectionString, CommandType.Text, sGetSql, paramsGet)) { SnsCenterUser user = new SnsCenterUser(); if (aReader.Read()) { try { _userid = Convert.ToInt32(aReader["userid"]); _PassportId = aReader["PassportId"].ToString(); _deviceID = aReader["DeviceID"].ToNotNullString(); RegType = aReader["RegType"].ToEnum<RegType>(); RetailID = aReader["RetailID"].ToNotNullString(); RetailUser = aReader["RetailUser"].ToNotNullString(); WeixinCode = aReader["WeixinCode"].ToNotNullString(); } catch (Exception ex) { TraceLog.WriteError("GetUserId method error:{0}, sql:{0}", ex, sGetSql); } return _userid; } else { return 0; } } }
/// <summary> /// 通道商验证登录 /// </summary> /// <param name="retailId"></param> /// <param name="retailUser"></param> /// <returns></returns> public static string[] LoginByRetail(string retailId, string retailUser) { string[] result = new string[2]; SnsCenterUser snsCenterUser = new SnsCenterUser(); var snsuser = snsCenterUser.GetUserInfo(retailId, retailUser); if (snsuser.UserId <= 0) { //自动获取通行证 SnsPassport passport = new SnsPassport(); string pid = passport.GetRegPassport(); string pwd = passport.GetRandomPwd(); //modify login of retail bug. snsCenterUser = new SnsCenterUser(pid, pwd, string.Empty) { RetailID = retailId, RetailUser = retailUser }; result[0] = snsCenterUser.InsertSnsUser().ToString(); result[1] = pid; return result; } result[0] = snsuser.UserId.ToString(); result[1] = snsuser.PassportId; return result; }
/// <summary> /// 注册 /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <param name="isCustom">use custom passport</param> /// <returns></returns> public static bool Register(string pid, string password, string imei, bool isCustom = false) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, imei); var snsuser = snsCenterUser.GetUserInfo(pid); if (snsuser.UserId <= 0) { return snsCenterUser.InsertSnsUser(isCustom) > 0; } return true; }
/// <summary> /// 检查通行证密码 /// </summary> /// <param name="pid"></param> /// <param name="password"></param> /// <returns></returns> public static bool CheckPassportPwd(string pid, string password) { SnsCenterUser snsCenterUser = new SnsCenterUser(pid, password, string.Empty); var snsuser = snsCenterUser.GetUserInfo(pid); return snsCenterUser.ValidatePassport(snsuser); }
private static int DoRegisterPassport(string passportId, string password, string imei, string[] paramNames, string[] paramValues, out int userType, bool isCustom) { SnsCenterUser snsCenterUser = new SnsCenterUser(passportId, password, imei); var snsuser = snsCenterUser.GetUserInfo(passportId); userType = (int)snsCenterUser.RegType; if (snsuser.UserId > 0) { return 0; } return snsCenterUser.InsertSnsUser(paramNames, paramValues, isCustom); }
/// <summary> /// 获取用户信息 /// </summary> /// <param name="pid"></param> /// <returns></returns> public static SnsUser GetUserInfo(string pid) { SnsCenterUser snsCenterUser = new SnsCenterUser(); return snsCenterUser.GetUserInfo(pid); }
/// <summary> /// 登录 /// </summary> /// <param name="user"></param> /// <param name="password"></param> /// <param name="imei"></param> /// <param name="userType"></param> /// <param name="isCustom">use custom passport</param> /// <returns></returns> public static int LoginByDevice(string user, string password, string imei, out RegType userType, bool isCustom = false) { if (!SnsCenterUser.CheckDevice(imei)) throw (new Exception("禁止登录")); int userId = 0; try { var snsCenterUser = new SnsCenterUser(user, password, imei); var snsUser = snsCenterUser.GetUserInfo(user); if (snsUser == null || snsUser.UserId <= 0) { Guid gid; userType = Guid.TryParse(password, out gid) ? RegType.Guest : RegType.Normal; snsCenterUser.RegType = userType; userId = snsCenterUser.InsertSnsUser(isCustom); //过期移除 PassportExpired passportExpired; bool result = string.IsNullOrEmpty(imei) ? imeiMap.TryRemove(user, out passportExpired) : imeiMap.TryRemove(imei, out passportExpired); return userId; } userType = snsUser.RegType; if (snsCenterUser.ValidatePassport(snsUser)) { return snsUser.UserId; } } finally { SnsCenterUser.AddLoginLog(imei, user); } return userId; }