Exemple #1
0
        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);
        }
Exemple #2
0
 /// <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));
     }
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        /// <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);
        }