Esempio n. 1
0
        /// <summary>
        /// 更新凭证令牌
        /// </summary>
        public bool UpdateCertToken(CertTokenInfo info)
        {
            if (info.UpdateTime == null)
            {
                info.UpdateTime = Utils.GetNow();
            }

            SqlMapper.Instance().Update("CertInfo.UpdateCertToken", info);
            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// 比较令牌
        /// </summary>
        /// <param name="token"></param>
        /// <param name="certId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool CheckCertToken(string token, string certId, string userId)
        {
            CertTokenInfo certTokenInfo = GetCurrentCertToken(certId, userId, false);

            if (certTokenInfo == null || certTokenInfo.CertToken != token)
            {
                return(false);
            }
            return(true);
        }
Esempio n. 3
0
        /// <summary>
        /// GetCertToken
        /// </summary>
        public CertTokenInfo GetCertToken(string userId)
        {
            CertInfo certInfo = null;

            Dex.Services.AuthService service = new Services.AuthService();
            certInfo = service.GetCertByUserId(userId);
            var contract = Validate(TransType.JSON, certInfo.UserCode,
                                    certInfo.CustomerCode, certInfo.CertPwd, string.Empty);
            CertTokenInfo certTokenInfo = null;

            certTokenInfo = service.GetCertTokenByCertId(certInfo.CertId);
            return(certTokenInfo);
        }
Esempio n. 4
0
        /// <summary>
        /// 获取当前令牌(可刷新令牌)
        /// </summary>
        /// <param name="certId">凭证ID</param>
        /// <param name="userId">用户ID</param>
        /// <param name="refresh">true:立即刷新,false:过期刷新</param>
        /// <returns></returns>
        public CertTokenInfo GetCurrentCertToken(string certId, string userId, bool refresh)
        {
            // 获取当前Token
            CertTokenInfo certTokenInfo = GetCertTokenByCertId(certId);

            // 没有则生成Token
            if (certTokenInfo == null)
            {
                CertTokenInfo newCertTokenInfo = new CertTokenInfo();
                newCertTokenInfo.CertId    = certId;
                newCertTokenInfo.UserId    = userId;
                newCertTokenInfo.CertToken = CreateTokenString();
                InsertCertToken(newCertTokenInfo);
                return(newCertTokenInfo);
            }
            else // 存在,则判断是否过期
            {
                if (refresh)
                {
                    RefreshCertToken(certTokenInfo);
                    return(certTokenInfo);
                }
                ConfigService configService = new ConfigService();
                int           cycleTime     = configService.GetCertTokenCycleTimeCfg();
                certTokenInfo.CycleTime = cycleTime;
                DateTime dtUpdateTime = Convert.ToDateTime(certTokenInfo.UpdateTime);
                DateTime dtEndTime    = dtUpdateTime.AddMilliseconds(cycleTime);
                DateTime dtNow        = DateTime.Now;
                if (dtNow > dtEndTime) // 过期
                {
                    certTokenInfo.IsOverTime = true;
                }
                else
                {
                    certTokenInfo.IsOverTime = false;
                    RefreshCertToken(certTokenInfo);
                }
            }
            return(certTokenInfo);
        }
Esempio n. 5
0
 public CertTokenInfo RefreshCertToken(CertTokenInfo obj)
 {
     obj.UpdateTime = Utils.GetNow();
     UpdateCertToken(obj);
     return(obj);
 }