public bool ValidToken(string tokencode, out string message) { bool flag = false; message = ""; lgk.Model.tb_LoginToken tokenmodel = logintokenBLL.GetModelByToken(tokencode); if (tokenmodel == null) { message = "授权码token不存在"; } else if (tokenmodel.EndTime < DateTime.Now) { message = "授权码token已过期"; } else if (tokenmodel.IsValid == 1) { message = "授权码token已失效"; } else { flag = true; message = "验证成功"; } return(flag); }
/// <summary> /// 得到一个对象实体 /// </summary> public lgk.Model.tb_LoginToken GetModelByUserIDAndIsValid(long UserID, int IsValid) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 ID,UserID,SmsCode,TokenCode,AddTime,EndTime,IsValid from tb_LoginToken "); strSql.Append(" where ID=@ID"); SqlParameter[] parameters = { new SqlParameter("@ID", SqlDbType.BigInt), new SqlParameter("@IsValid", SqlDbType.Int) }; parameters[0].Value = UserID; parameters[1].Value = IsValid; lgk.Model.tb_LoginToken model = new lgk.Model.tb_LoginToken(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(lgk.Model.tb_LoginToken model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update tb_LoginToken set "); strSql.Append("UserID=@UserID,"); strSql.Append("SmsCode=@SmsCode,"); strSql.Append("TokenCode=@TokenCode,"); strSql.Append("AddTime=@AddTime,"); strSql.Append("EndTime=@EndTime,"); strSql.Append("IsValid=@IsValid"); strSql.Append(" where ID=@ID"); SqlParameter[] parameters = { new SqlParameter("@UserID", SqlDbType.BigInt, 8), new SqlParameter("@SmsCode", SqlDbType.VarChar, 20), new SqlParameter("@TokenCode", SqlDbType.VarChar, 50), new SqlParameter("@AddTime", SqlDbType.DateTime), new SqlParameter("@EndTime", SqlDbType.DateTime), new SqlParameter("@IsValid", SqlDbType.Int, 4), new SqlParameter("@ID", SqlDbType.BigInt, 8) }; parameters[0].Value = model.UserID; parameters[1].Value = model.SmsCode; parameters[2].Value = model.TokenCode; parameters[3].Value = model.AddTime; parameters[4].Value = model.EndTime; parameters[5].Value = model.IsValid; parameters[6].Value = model.ID; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 增加一条数据 /// </summary> public long Add(lgk.Model.tb_LoginToken model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into tb_LoginToken("); strSql.Append("UserID,SmsCode,TokenCode,AddTime,EndTime,IsValid)"); strSql.Append(" values ("); strSql.Append("@UserID,@SmsCode,@TokenCode,@AddTime,@EndTime,@IsValid)"); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@UserID", SqlDbType.BigInt, 8), new SqlParameter("@SmsCode", SqlDbType.VarChar, 20), new SqlParameter("@TokenCode", SqlDbType.VarChar, 50), new SqlParameter("@AddTime", SqlDbType.DateTime), new SqlParameter("@EndTime", SqlDbType.DateTime), new SqlParameter("@IsValid", SqlDbType.Int, 4) }; parameters[0].Value = model.UserID; parameters[1].Value = model.SmsCode; parameters[2].Value = model.TokenCode; parameters[3].Value = model.AddTime; parameters[4].Value = model.EndTime; parameters[5].Value = model.IsValid; object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt64(obj)); } }
/// <summary> /// 得到一个对象实体 /// </summary> public lgk.Model.tb_LoginToken DataRowToModel(DataRow row) { lgk.Model.tb_LoginToken model = new lgk.Model.tb_LoginToken(); if (row != null) { if (row["ID"] != null && row["ID"].ToString() != "") { model.ID = long.Parse(row["ID"].ToString()); } if (row["UserID"] != null && row["UserID"].ToString() != "") { model.UserID = long.Parse(row["UserID"].ToString()); } if (row["SmsCode"] != null) { model.SmsCode = row["SmsCode"].ToString(); } if (row["TokenCode"] != null) { model.TokenCode = row["TokenCode"].ToString(); } if (row["AddTime"] != null && row["AddTime"].ToString() != "") { model.AddTime = DateTime.Parse(row["AddTime"].ToString()); } if (row["EndTime"] != null && row["EndTime"].ToString() != "") { model.EndTime = DateTime.Parse(row["EndTime"].ToString()); } if (row["IsValid"] != null && row["IsValid"].ToString() != "") { model.IsValid = int.Parse(row["IsValid"].ToString()); } } return(model); }
/// <summary> /// 得到一个对象实体 /// </summary> public lgk.Model.tb_LoginToken GetModelByToken(string TokenCode) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 ID,UserID,SmsCode,TokenCode,AddTime,EndTime,IsValid from tb_LoginToken "); strSql.Append(" where TokenCode=@TokenCode"); SqlParameter[] parameters = { new SqlParameter("@TokenCode", SqlDbType.VarChar, 50) }; parameters[0].Value = TokenCode; lgk.Model.tb_LoginToken model = new lgk.Model.tb_LoginToken(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 获取Token /// </summary> /// <param name="UserCode"></param> /// <param name="Password"></param> /// <param name="PhoneCode"></param> /// <param name="userid"></param> /// <param name="tokencode"></param> /// <param name="message"></param> /// <returns></returns> public UserTokenModel Login(string UserCode, string Password, string PhoneCode, int LoginMode, out bool flag, out string message) { long vildid = 0; UserTokenModel model = new UserTokenModel(); flag = false; message = string.Empty; lgk.Model.tb_user user = userBLL.GetModel(GetUserID(UserCode.Trim())); if (user == null) { message = GetLanguage("AccountError");//账号或密码错误 return(model); } else if (LoginMode == 1) { if (user.Password.Length == 32 && Password.Trim().Length == 32) { if (user.Password != Password.Trim()) { message = GetLanguage("AccountError");//账号或密码错误 return(model); } } else { //安卓端注册时偶尔会出现传递的md5密码少第一个字符,只传递了31个字符,为了兼容多端登录需要做一下特殊处理 string pwd = user.Password, loginPwd = Password.Trim(); if (user.Password.Length == 32) { pwd = user.Password.Substring(1, user.Password.Length - 1); } if (Password.Trim().Length == 32) { loginPwd = Password.Substring(1, loginPwd.Length - 1); } if (pwd != loginPwd) { message = GetLanguage("AccountError");//账号或密码错误 return(model); } } } else if (LoginMode == 2) { vildid = CheckSMSCode(user.PhoneNum, PhoneCode, 2); if (vildid < 0) { message = "验证码错误"; return(model); } } else if (user.IsLock == 1) { message = "账户已冻结,登录失败"; return(model); } //lgk.Model.SMS smsModel = smsBLL.GetModelByPhoneAndCode(user.PhoneNum, PhoneCode); //if(smsModel == null) //{ // message = "短信验证码无效"; //} //else if(smsModel.IsValid == 1) //{ // message = "短信验证码无效"; //} //else if(smsModel.ValidTime < DateTime.Now) //{ // message = "短信验证码已过期"; //} //else //{ //更新用户当前有效的token为无效 logintokenBLL.UpdateIsValid(user.UserID, 0, 1); //生成 string code = Guid.NewGuid().ToString().Replace("-", "") + new Random().Next(1111, 9999); lgk.Model.tb_LoginToken tokenmodel = new lgk.Model.tb_LoginToken(); tokenmodel.UserID = user.UserID; tokenmodel.SmsCode = PhoneCode; tokenmodel.TokenCode = code; tokenmodel.AddTime = DateTime.Now; tokenmodel.EndTime = DateTime.Now.AddHours(24); tokenmodel.IsValid = 0; //0:有效,1:无效 long lID = logintokenBLL.Add(tokenmodel); if (lID > 0) { model.UserID = user.UserID; model.Token = code; model.UserCode = user.UserCode; model.Hx_password = user.ThreePassword; if (!string.IsNullOrEmpty(user.IdenCode)) { model.IsCardValid = 1; //身份已验证 } else { model.IsCardValid = 0; //身份未验证 } flag = true; message = "登录成功"; } else { message = "登录失败"; } //} return(model); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(lgk.Model.tb_LoginToken model) { return(dal.Update(model)); }
/// <summary> /// 增加一条数据 /// </summary> public long Add(lgk.Model.tb_LoginToken model) { return(dal.Add(model)); }