Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
        /// <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);
            }
        }
Exemple #4
0
        /// <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));
            }
        }
Exemple #5
0
 /// <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);
 }
Exemple #6
0
        /// <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);
            }
        }
Exemple #7
0
        /// <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);
        }
Exemple #8
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(lgk.Model.tb_LoginToken model)
 {
     return(dal.Update(model));
 }
Exemple #9
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public long Add(lgk.Model.tb_LoginToken model)
 {
     return(dal.Add(model));
 }