/// <summary> /// 更新凭证令牌 /// </summary> public bool UpdateCertToken(CertTokenInfo info) { if (info.UpdateTime == null) { info.UpdateTime = Utils.GetNow(); } SqlMapper.Instance().Update("CertInfo.UpdateCertToken", info); return(true); }
/// <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); }
/// <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); }
/// <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); }
public CertTokenInfo RefreshCertToken(CertTokenInfo obj) { obj.UpdateTime = Utils.GetNow(); UpdateCertToken(obj); return(obj); }