Exemple #1
0
        public static bool ValidToken(string token)
        {
            try
            {
                TokenDTO tokenInfo   = GetTokenInfo(token);
                Mc_Token tokenEntity = DBUtility.CubeDb.From <Mc_Token>().Where(Mc_Token._.Secret_Key == tokenInfo.SecretKey).Select(Mc_Token._.All).ToList().FirstOrDefault();
                if (tokenEntity == null)
                {
                    return(false);
                }

                Mc_User userEntity = DBUtility.CubeDb.From <Mc_User>().Where(Mc_User._.Id == tokenEntity.User_Id).FirstDefault();
                if (userEntity == null)
                {
                    return(false);
                }

                if (!tokenInfo.LoginName.Equals(userEntity.Login_Name, StringComparison.CurrentCultureIgnoreCase))
                {
                    return(false);
                }

                TimeSpan span = DateTime.Now - tokenInfo.LoginTime;
                if (span.TotalMinutes > TokenOverdueMiniute)
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }

            return(true);
        }
Exemple #2
0
        /// <summary>
        /// 添加或更新Token
        /// </summary>
        /// <param name="result"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        private string RenewToken(ResultDTO result, Mc_User user)
        {
            string   secretKey = Guid.NewGuid().ToString();
            Mc_Token tokenInfo = DBUtility.CubeDb.From <Mc_Token>()
                                 .Where(Mc_Token._.User_Id == user.Id)
                                 .ToList()
                                 .FirstOrDefault();

            if (tokenInfo == null)
            {
                tokenInfo            = new Mc_Token();
                tokenInfo.User_Id    = user.Id;
                tokenInfo.Login_Time = DateTime.Now;
                tokenInfo.Secret_Key = secretKey;
                DBUtility.CubeDb.Insert <Mc_Token>(tokenInfo);
            }
            else
            {
                tokenInfo.Login_Time = DateTime.Now;
                tokenInfo.Secret_Key = secretKey;
                DBUtility.CubeDb.Update <Mc_Token>(tokenInfo);
            }
            result.success = true;
            TokenDTO token = new TokenDTO()
            {
                LoginName = user.Login_Name,
                LoginTime = tokenInfo.Login_Time,
                SecretKey = Guid.Parse(secretKey)
            };

            return(TokenUtility.GenerateToken(token));
        }
Exemple #3
0
        public ResultDTO login(string userName, string password)
        {
            ResultDTO result = new ResultDTO();
            Mc_User   user   = DBUtility.CubeDb
                               .From <Mc_User>()
                               .Where(Mc_User._.Login_Name == userName)
                               .First();

            if (user == null)
            {
                result.success   = false;
                result.errorcode = ErrorCode.NO_SSO_INFO;
            }
            else if (!CheckUserAuthencationInfo(user, password))
            {
                result.success = false;
                result.data    = ErrorCode.USER_AUTH_FAILED;
            }
            else
            {
                result.success = true;
                result.data    = RenewToken(result, user);
            }
            return(result);
        }
        public ResultDTO Update(Guid id, string loginName, string name, string mail)
        {
            Mc_User user = new Mc_User()
            {
                Id = id, Login_Name = loginName, Name = name, Mail = mail
            };

            Db.Update <Mc_User>(user);
            return(new ResultDTO()
            {
                success = true
            });
        }
Exemple #5
0
 /// <summary>
 /// 用户登录安全性验证
 /// </summary>
 /// <param name="user"></param>
 /// <param name="password"></param>
 /// <returns></returns>
 private bool CheckUserAuthencationInfo(Mc_User user, string password)
 {
     return(true);
 }