public override object Do(object obj) { UpdateWSTokenExpireSV bpObj = (UpdateWSTokenExpireSV)obj; if (bpObj.WSTokenDTO == null) { throw new BpParameterException("UpdateWSTokenExpireSV", "WSTokenDTO"); } WSTokenDTOData wsTokenDTO = bpObj.WSTokenDTO; WSToken wsToken = WSToken.Finder.Find("TokenStr = @TokenStr", new OqlParam("TokenStr", wsTokenDTO.TokenStr)); if (wsToken == null) { return(false); } if (!wsToken.IsAlive) { return(false); } using (ISession s = Session.Open()) { wsToken.LastUpdateTime = wsTokenDTO.LastUpdateTime; s.InList(wsToken); s.Commit(); } return(true); }
/// <summary> /// 获取Token /// </summary> /// <param name="tokenStr"></param> /// <param name="enterprise"></param> /// <returns></returns> private Token Get(string tokenStr, Enterprise enterprise) { using (ContextObject context = new ContextObject(enterprise)) { WSToken wsToken = WSToken.Finder.Find(@"TokenStr = @TokenStr and IsAlive = 1", new OqlParam("TokenStr", tokenStr)); return(wsToken == null ? null : TransToToken(wsToken)); } }
public override object Do(object obj) { var bpObj = (SaveWSTokenSV)obj; if (bpObj.WSTokenDTO == null) { throw new BpParameterException("SaveWSTokenSV", "WSTokenDTO"); } WSTokenDTOData wsTokenDTO = bpObj.WSTokenDTO; using (ISession s = Session.Open()) { WSToken wsToken = WSToken.Create(); //TokenStr Token串 wsToken.TokenStr = wsTokenDTO.TokenStr; //EnterpriseID 企业ID wsToken.EnterpriseID = wsTokenDTO.EnterpriseID; //EnterpriseName 企业名称 wsToken.EnterpriseName = wsTokenDTO.EnterpriseName; //UserID 用户ID wsToken.UserID = wsTokenDTO.UserID; //UserCode 用户编码 wsToken.UserCode = wsTokenDTO.UserCode; //UserName 用户名称 wsToken.UserName = wsTokenDTO.UserName; //OrgID 组织ID wsToken.OrgID = wsTokenDTO.OrgID; //OrgCode 组织编码 wsToken.OrgCode = wsTokenDTO.OrgCode; //OrgName 组织名称 wsToken.OrgName = wsTokenDTO.OrgName; //Culture 语言 wsToken.Culture = wsTokenDTO.Culture; //SupportCultureNameList 支持语言列表 wsToken.SupportCultureNameList = wsTokenDTO.SupportCultureNameList; //CreateTime 创建时间 wsToken.CreateTime = wsTokenDTO.CreateTime; //LastUpdateTime 最后更新时间 wsToken.LastUpdateTime = wsTokenDTO.LastUpdateTime; //InvalidTime 失效时间 //IsAlive 活动 wsToken.IsAlive = true; s.InList(wsToken); s.Commit(); } return(true); }
/// <summary> /// 转换Token /// </summary> /// <param name="wsToken"></param> /// <returns></returns> private static Token TransToToken(WSToken wsToken) { Token token = new Token(); token.TokenStr = wsToken.TokenStr; token.EnterpriseID = wsToken.EnterpriseID; token.EnterpriseName = wsToken.EnterpriseName; token.UserID = wsToken.UserID; token.UserCode = wsToken.UserCode; token.UserName = wsToken.UserName; token.OrgID = wsToken.OrgID; token.OrgCode = wsToken.OrgCode; token.OrgName = wsToken.OrgName; token.Culture = wsToken.Culture; token.SupportCultureNameList = wsToken.SupportCultureNameList; token.CreateTime = wsToken.CreateTime; token.LastUpdateTime = wsToken.LastUpdateTime; return(token); }
public override object Do(object obj) { WSTokenIsExpiredSV bpObj = (WSTokenIsExpiredSV)obj; if (bpObj.WSTokenDTO == null) { throw new BpParameterException("WSTokenIsExpiredSV", "WSTokenDTO"); } WSTokenDTOData wsTokenDTO = bpObj.WSTokenDTO; WSToken wsToken = WSToken.Finder.Find("TokenStr = @TokenStr", new OqlParam("TokenStr", wsTokenDTO.TokenStr)); if (wsToken == null) { return(true); } if (!wsToken.IsAlive) { return(true); } //Token操时秒数 int timeoutSecond = WSHelper.GetTokenTimeoutSecond(); TimeSpan timeout = TimeSpan.FromSeconds(timeoutSecond); DateTime now = DateTime.Now; DateTime d = wsToken.LastUpdateTime; bool isExpired = now - d > timeout; if (!isExpired) { return(false); } using (ISession s = Session.Open()) { wsToken.IsAlive = false; wsToken.InvalidTime = DateTime.Now; s.InList(wsToken); s.Commit(); } return(true); }
/// <summary> /// 创建Token /// </summary> /// <param name="creds"></param> /// <returns></returns> public override Token Create(Credentials creds) { if (creds == null) { throw new ArgumentException("身份认证信息不能为空"); } ContextInfo contextInfo = creds.GetContextInfo(); Token token; using (ContextObject context = new ContextObject(contextInfo)) { if (IsSameCredentialsOneToken) { WSToken wsToken = WSToken.Finder.Find(@"EnterpriseID = @EnterpriseID and UserCode = @UserCode and OrgCode = @OrgCode and IsAlive = 1 order by LastUpdateTime desc", new OqlParam("EnterpriseID", contextInfo.EnterpriseID), new OqlParam("UserCode", contextInfo.UserCode), new OqlParam("OrgCode", contextInfo.OrgCode)); if (wsToken != null) { token = TransToToken(wsToken); token.LastUpdateTime = DateTime.Now; //更新有效期 UpdateExpire(token); return(token); } } //创建Token string tokenStr = BuildTokenStr(contextInfo.EnterpriseID, this.TokenSize); token = TokenHelper.CreateToken(tokenStr, contextInfo); //保存Token SaveWSTokenSVProxy proxy = new SaveWSTokenSVProxy(); proxy.WSTokenDTO = TransToWSTokenDTOData(token); proxy.Do(); } return(token); }