/// <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="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="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="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="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> /// 获取通行证 /// </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(); if (!string.IsNullOrEmpty(imei)) { 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 = GetRandomPwd(); if (encodeFunc != null) { password = encodeFunc(password); } list.Add(passportId); list.Add(password); } return(list.ToArray()); }