/// <summary>
        /// 获取用户信息仅仅为获取令牌验证
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string GetUserForLogin2N(string req)
        {
            try
            {
                reqdata = this.AnaRequestData(req);
                SSY_USER_DICT model = this.json.Deserialize <SSY_USER_DICT>(reqdata.reqdata);

                List <SSY_USER_DICT> resobj = this._comBiz.GetUsers(model, base.envirObj.distManagerParam);

                //返回执行结果
                if (resobj.Count > 0)
                {
                    resdata = this.MakeResponseData("1", base.successStr, json.Serialize(resobj), string.Empty);
                }
                else
                {
                    resdata = this.MakeResponseData("0", base.errorStr + this.GetI18nLangItem("nocurruser", this.i18nModuleCurrLang), string.Empty, string.Empty);
                }
            }
            catch (Exception ex)
            {
                resdata = this.MakeResponseData("0", this.GetI18nLangItem("GetTokenVerifyUserErr", this.i18nModuleCurrLang) + ex.Message, string.Empty, string.Empty);
            }

            return(json.Serialize(resdata));
        }
Beispiel #2
0
        /// <summary>
        /// 获取所有用户list
        /// </summary>
        /// <param name="ud"></param>
        /// <param name="distributeDataNodeManagerParams"></param>
        /// <returns></returns>
        public List <SSY_USER_DICT> GetAllUsers(SSY_USER_DICT ud, DistributeDataNodeManagerParams distributeDataNodeManagerParams)
        {
            List <SSY_USER_DICT> listReturn = new List <SSY_USER_DICT>();
            DataTable            dt         = this.comBize.GetAllUsers(ud, distributeDataNodeManagerParams);

            if (Common.Utility.DtHasData(dt))
            {
                listReturn = Common.UtilitysForT <SSY_USER_DICT> .GetListsObj(dt);
            }

            return(listReturn);
        }
Beispiel #3
0
        /// <summary>
        /// 获取用户list
        /// </summary>
        /// <param name="ud"></param>
        /// <param name="distributeDataNodeManagerParams">分布式管理参数,必须存在有框架赋值</param>
        /// <param name="ListBizLog">记录日志内容参数,若不记录日志可以不传入</param>
        /// <returns></returns>
        public List <SSY_USER_DICT> GetUserForLogin(SSY_USER_DICT ud, DistributeDataNodeManagerParams distributeDataNodeManagerParams,
                                                    List <SSY_LOGENTITY> ListBizLog)
        {
            List <SSY_USER_DICT> listReturn = new List <SSY_USER_DICT>();
            DataTable            dt         = this.comBize.GetUserForLogin(ud, distributeDataNodeManagerParams, ListBizLog);

            if (Common.Utility.DtHasData(dt))
            {
                listReturn = Common.UtilitysForT <SSY_USER_DICT> .GetListsObj(dt);
            }

            return(listReturn);
        }
Beispiel #4
0
        /// <summary>
        /// 获取用户
        /// </summary>
        /// <param name="bizobj"></param>
        /// <param name="ddnmParams"></param>
        /// <param name="pager"></param>
        /// <returns></returns>
        public List <SSY_USER_DICT> GetUserdict(SSY_USER_DICT bizobj, DistributeDataNodeManagerParams ddnmParams, SSY_PagingParam pager)
        {
            List <SSY_USER_DICT> listReturn = new List <SSY_USER_DICT>();

            DataTable dt = this.comBize.GetUserdict(bizobj, ddnmParams, pager);

            if (Common.Utility.DtHasData(dt))
            {
                listReturn = Common.UtilitysForT <SSY_USER_DICT> .GetListsObj(dt);
            }

            return(listReturn);
        }
Beispiel #5
0
 /// <summary>
 /// 重置默认密码
 /// </summary>
 /// <param name="model"></param>
 /// <param name="ddnmParams"></param>
 /// <param name="ListBizLog"></param>
 /// <returns></returns>
 public abstract bool ResetUserPWD(SSY_USER_DICT model, DistributeDataNodeManagerParams ddnmParams, List <SSY_LOGENTITY> ListBizLog);
Beispiel #6
0
 /// <summary>
 /// 获取用户
 /// </summary>
 /// <param name="bizobj"></param>
 /// <param name="distributeDataNodeManagerParams"></param>
 /// <param name="pager"></param>
 /// <returns></returns>
 public abstract DataTable GetUserdict(SSY_USER_DICT bizobj, DistributeDataNodeManagerParams distributeDataNodeManagerParams, SSY_PagingParam pager);
Beispiel #7
0
 /// <summary>
 /// 获取功能
 /// </summary>
 /// <param name="ud"></param>
 /// <param name="distributeDataNodeManagerParams"></param>
 /// <returns></returns>
 public abstract DataSet GetPages(SSY_USER_DICT ud, DistributeDataNodeManagerParams distributeDataNodeManagerParams);
Beispiel #8
0
 /// <summary>
 /// 获取所有用户
 /// </summary>
 /// <param name="ud"></param>
 /// <param name="distributeDataNodeManagerParams"></param>
 /// <returns></returns>
 public abstract DataTable GetAllUsers(SSY_USER_DICT ud, DistributeDataNodeManagerParams distributeDataNodeManagerParams);
Beispiel #9
0
 /// <summary>
 /// 用户安全退出
 /// </summary>
 /// <param name="ud"></param>
 /// <param name="distributeDataNodeManagerParams">分布式管理参数,必须存在有框架赋值</param>
 /// <param name="ListBizLog">记录日志内容参数,若不记录日志可以不传入</param>
 /// <returns></returns>
 public abstract string QuitUserForLogin(SSY_USER_DICT ud, DistributeDataNodeManagerParams distributeDataNodeManagerParams,
                                         List <SSY_LOGENTITY> ListBizLog);
        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>d
        public string GetUserForLoginN(string req)
        {
            try
            {
                //解析参数实体
                reqdata = this.AnaRequestData(req);
                SSY_USER_DICT model   = this.json.Deserialize <SSY_USER_DICT>(reqdata.reqdata);
                StringBuilder toolStr = new StringBuilder();

                //准备日志参数实例
                List <SSY_LOGENTITY> ListBizLog = new List <SSY_LOGENTITY>();

                if (model.USERID.ToString().ToUpper() == "super".ToUpper())
                {
                    base.envirObj.distManagerParam.DistributeActionIden = DistributeActionIden.Query;
                }
                else
                {
                    base.envirObj.distManagerParam.DistributeActionIden = DistributeActionIden.TransAction;
                }

                //this.permitMaxLoginFailtCnt = APPConfig.GetAPPConfig().GetConfigValue("permitMaxLoginFailtCnt", "5");  //允许最大错误登录次数, 默认5次

                //解密口令, 客户端已经加密,这里无需解密,直接比较密码串
                //string iv128str = APPConfig.GetAPPConfig().GetConfigValue("ivpwd", "5CRc851hRywf7W3m");
                //string key256str = APPConfig.GetAPPConfig().GetConfigValue("keypwd", "nW8FnftasWp7AVZrmgr9sdaGNXsjMWiw");
                //byte[] key256 = Security.CreateKeyByte(key256str);
                //byte[] iv128 = Security.CreateKeyByte(iv128str);
                //model.PASSWORD = Security.DeAES(model.PASSWORD.ToString(), key256, iv128);

                List <SSY_USER_DICT> uds = this._comBiz.GetUserForLogin(model, base.envirObj.distManagerParam, ListBizLog);

                if (uds.Count > 0)
                {
                    if (model.PASSWORD.ToString() == uds[0].PASSWORD.ToString())
                    {
                        if (uds[0].ISUSE.ToString() == "0")
                        {
                            //判断是否禁用
                            resdata = this.MakeResponseData("0", this.GetI18nLangItem("loginerr_Enabled", this.i18nModuleCurrLang), string.Empty, string.Empty);
                        }
                        else if (uds[0].LOCKED.ToString() == "1")
                        {
                            //判断是否锁定
                            resdata = this.MakeResponseData("0", this.GetI18nLangItem("loginerr_Locked", this.i18nModuleCurrLang), string.Empty, string.Empty);
                        }
                        else
                        {
                            #region 允许登录后,正常验证处理

                            //判断是否登录
                            bool alreadyLonin = false;
                            if (Utility.ObjHasData(uds[0].ISLONIN) && Utility.ObjHasData(uds[0].FROMPLAT))
                            {
                                if (uds[0].ISLONIN == "Y" && uds[0].FROMPLAT.ToUpper() == base.envirObj.distManagerParam.DistributeDataNodes[0].Systemname.ToUpper())
                                {
                                    alreadyLonin = true;
                                }
                            }
                            if (alreadyLonin)
                            {
                                //检查密码安全补存提示信息
                                //resdata = BaseWebPage.MakeResponseData("0", string.Format(BaseUI.GetNoticeCfg("com0008", "CommonNoticeCfg"), uds[0].FROMPLAT.ToUpper()), string.Empty);
                                resdata = this.MakeResponseData("0", this.GetI18nLangItem("loginok_exist", this.i18nModuleCurrLang), string.Empty, string.Empty);
                            }
                            else
                            {
                                //检查是否启用密码安全策略 检查首次登陆  检查超过时间间隔
                                if (base.envirObj.distManagerParam.DistributeDataNodes[0].Isusepwdsecuritycheck == "Y")
                                {
                                    if (base.envirObj.distManagerParam.DistributeDataNodes[0].Pwdfirstcheck == "Y" && uds[0].ISFIRSTLOGIN == "Y")
                                    {
                                        //首次登陆提示
                                        toolStr.AppendLine(this.GetI18nLangItem("loginok_firstlogin", this.i18nModuleCurrLang));
                                    }

                                    //这里取服务器时间即可
                                    //Frame.ServiceLibs.FrameManagerService tmpop = new FrameManagerService();
                                    //string currTime = string.Empty;
                                    //currTime =  tmpop.GetSystemDateTimesN(string.Empty);

                                    string currTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                    if ((!string.IsNullOrEmpty(currTime)) && (!string.IsNullOrEmpty(uds[0].LASTLOGINTIME.ToString())))
                                    {
                                        TimeSpan ts = Convert.ToDateTime(currTime) - Convert.ToDateTime(uds[0].LASTLOGINTIME.ToString());
                                        if (ts.TotalHours >= int.Parse(base.envirObj.distManagerParam.DistributeDataNodes[0].Pwdintervalhours))
                                        {
                                            //超过时间提示
                                            toolStr.AppendLine(string.Format(this.GetI18nLangItem("loginok_oversecuritytime", this.i18nModuleCurrLang),
                                                                             base.envirObj.distManagerParam.DistributeDataNodes[0].Pwdintervalhours));
                                        }
                                    }
                                }

                                #region 获取令牌

                                //节点中心安全服务
                                //string FrameNodeSecurity = APPConfig.GetAPPConfig().GetConfigValue("NodeCenterMaster", "") +
                                //    APPConfig.GetAPPConfig().GetConfigValue(SSY_ServiceHost.FrameNodeSecurityService, "").TrimStart('/');

                                //调用普通节点中心服务获取令牌
                                DataRow drServ = this.GetServiceConfigOne("framenodesecu", "1.0", "normal", "frameNode", this.serviceConfig);
                                //string FrameNodeSecurity = base.envirObj.BizNodeAddr + "/" + drServ["servcodename"].ToString().TrimStart('/');
                                string FrameNodeSecurity = drServ["url_addr"].ToString().TrimStart('/') + "/" + drServ["servcodename"].ToString().TrimStart('/');

                                SSY_DYNAMICTOKEN tokenModel = new SSY_DYNAMICTOKEN();
                                tokenModel.Dynamictoken = "";
                                tokenModel.ID           = "";
                                tokenModel.Remarks      = model.USERID.ToString();   //暂存用户账户,用于节点中心获取令牌时重新验证
                                tokenModel.Timestampss  = model.PASSWORD.ToString(); //暂存用户口令,用于节点中心获取令牌时重新验证

                                this.reqdata         = new ReqData();
                                this.reqdata.reqdata = json.Serialize(tokenModel);

                                //动态调用服务获取令牌
                                string tokenstr = DynamicInvokeWCF.Create <IFrameNodeSecurity>(FrameNodeSecurity).GetToken(this.json.Serialize(this.reqdata));

                                //返回执行结果
                                if (string.IsNullOrEmpty(tokenstr))
                                {
                                    resdata = this.MakeResponseData("0", this.GetI18nLangItem("loginok_notoken", this.i18nModuleCurrLang), string.Empty, string.Empty);
                                }
                                else
                                {
                                    //解析令牌
                                    RespData tmpToken = json.Deserialize <RespData>(tokenstr);

                                    if (tmpToken.respflag == "1")
                                    {
                                        //赋值当前登录用户数据
                                        base.envirObj.SysUserDict = uds[0];
                                        RespData tmpresdata = json.Deserialize <RespData>(tokenstr);

                                        //直接返回环境参数,去除口令和数据节点
                                        base.envirObj.TokenEncrpValue = tmpresdata.respdata;
                                        SysEnvironmentSerialize resTmp = new SysEnvironmentSerialize();
                                        resTmp = json.Deserialize <SysEnvironmentSerialize>(json.Serialize(base.envirObj));
                                        resTmp.SysUserDict.PASSWORD = "";   //不返回密码
                                        resTmp.distManagerParam     = null; //不返回数据节点
                                                                            //赋值用户数据到框架环境变量
                                        ManagerSysEnvironment.GetSysEnvironmentSerialize2SysEnvironment(base.envirObj);

                                        if (string.IsNullOrEmpty(toolStr.ToString()))
                                        {
                                            resdata = this.MakeResponseData("1", this.GetI18nLangItem("loginok", this.i18nModuleCurrLang), json.Serialize(resTmp), string.Empty);
                                        }
                                        else
                                        {
                                            resdata = this.MakeResponseData("2", this.GetI18nLangItem("loginok", this.i18nModuleCurrLang), json.Serialize(resTmp), string.Empty);
                                        }
                                    }
                                    else
                                    {
                                        resdata = this.MakeResponseData("0", this.GetI18nLangItem("loginok_gettokenerr", this.i18nModuleCurrLang), string.Empty, string.Empty);
                                    }
                                }

                                #endregion
                            }

                            #endregion
                        }
                    }
                    else
                    {
                        resdata = this.MakeResponseData("0", this.GetI18nLangItem("loginerr_userNotPassword", this.i18nModuleCurrLang), string.Empty, string.Empty);
                    }
                }
                else
                {
                    resdata = this.MakeResponseData("0", this.GetI18nLangItem("loginerr_nocurruser", this.i18nModuleCurrLang), string.Empty, string.Empty);
                }
            }
            catch (Exception ex)
            {
                resdata = this.MakeResponseData("0", this.GetI18nLangItem("loginerr_findexception", this.i18nModuleCurrLang) + ex.Message, string.Empty, string.Empty);
            }

            return(json.Serialize(resdata));
        }
Beispiel #11
0
 /// <summary>
 /// 用户安全退出
 /// </summary>
 /// <param name="ud"></param>
 /// <param name="distributeDataNodeManagerParams"></param>
 /// <param name="ListBizLog">记录日志内容参数,若不记录日志可以不传入</param>
 /// <returns></returns>
 public string QuitUserForLogin(SSY_USER_DICT ud, DistributeDataNodeManagerParams distributeDataNodeManagerParams,
                                List <SSY_LOGENTITY> ListBizLog)
 {
     return(this.comBize.QuitUserForLogin(ud, distributeDataNodeManagerParams, ListBizLog));
 }
Beispiel #12
0
 /// <summary>
 /// 重置默认密码
 /// </summary>
 /// <param name="model"></param>
 /// <param name="ddnmParams"></param>
 /// <param name="ListBizLog"></param>
 /// <returns></returns>
 public bool ResetUserPWD(SSY_USER_DICT model, DistributeDataNodeManagerParams ddnmParams, List <SSY_LOGENTITY> ListBizLog)
 {
     return(this.comBize.ResetUserPWD(model, ddnmParams, ListBizLog));
 }
Beispiel #13
0
 /// <summary>
 /// 获取功能
 /// </summary>
 /// <param name="ud"></param>
 /// <param name="distributeDataNodeManagerParams"></param>
 /// <returns></returns>
 public DataSet GetPages(SSY_USER_DICT ud, DistributeDataNodeManagerParams distributeDataNodeManagerParams)
 {
     return(this.comBize.GetPages(ud, distributeDataNodeManagerParams));
 }
Beispiel #14
0
        /// <summary>
        /// 获取令牌
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public string GetToken(string req)
        {
            try
            {
                //解析参数实体
                reqdata = this.AnaRequestData(req);
                SSY_DYNAMICTOKEN model = this.json.Deserialize <SSY_DYNAMICTOKEN>(reqdata.reqdata);

                string bizErrStr     = ""; //具体失败的业务提示
                string FrameSecurity = "";
                //获取业务可用节点
                UseNodeCollection unc = new UseNodeCollection();
                SSY_ResponseResult <UseNodeCollection> res = this.GetUseNodeCollection("1");
                if (res.IsCompleted)
                {
                    unc = res.Result;
                    //获取业务节点地址
                    List <string> bizNodes = new List <string>();
                    for (int i = 0; i < unc.BizNodeList.Count; i++)
                    {
                        bizNodes.Add(unc.BizNodeList[i].Url_addr);
                    }
                    //获取业务服务
                    //string bizSvcName = this._GetSingleBizSvc(SSY_ServiceHost.Frame_FrameSecurityService);
                    //FrameSecurity = this.GetNodeBaseAddr(bizNodes, ServiceType.BizDueWith) + bizSvcName.TrimStart('/');

                    //调用普通登陆验证服务
                    DataRow drServ = this.GetServiceConfigOne("framesecurity", "1.0", "normal", "frameMgt", this.serviceConfig);
                    //FrameSecurity = base.envirObj.BizNodeAddr + "/" + drServ["servcodename"].ToString().TrimStart('/');

                    //获取本地配置业务节点
                    List <SSY_BIZNODE_ADDR> tmpBizNode = base.json.Deserialize <List <SSY_BIZNODE_ADDR> >(this._GetBizNodeAddr());
                    for (int i = 0; i < tmpBizNode.Count; i++)
                    {
                        if (tmpBizNode[i].Moudiden.ToUpper() == "FrameMgt".ToUpper())
                        {
                            FrameSecurity = tmpBizNode[i].Url_addr + "/" + drServ["servcodename"].ToString().TrimStart('/');
                            break;
                        }
                    }

                    //二次登陆验证
                    SSY_USER_DICT ud = new SSY_USER_DICT();
                    ud.USERID   = model.Remarks;
                    ud.PASSWORD = model.Timestampss;

                    this.reqdata         = new ReqData();
                    this.reqdata.reqdata = json.Serialize(ud);

                    string reslogin             = DynamicInvokeWCF.Create <IFrameSecurity>(FrameSecurity).GetUserForLogin2N(json.Serialize(this.reqdata));
                    List <SSY_USER_DICT> resuds = new List <SSY_USER_DICT>();
                    this.resdata = json.Deserialize <RespData>(reslogin);
                    if (this.resdata.respflag == "1")
                    {
                        #region 登陆成功

                        string cols                   = "id|dynamictoken|remarks|timestampss";
                        string colTypes               = "String|String|String|String";
                        string tokenFilePath          = APPConfig.GetAPPConfig().GetConfigValue("XmldataPath", "") + "\\SSY_DYNAMICTOKEN.xml";
                        System.Data.DataTable dtToken = Common.Utility.GetTableFromXml(cols, colTypes, tokenFilePath);

                        if (Utility.DtHasData(dtToken))
                        {
                            //随机获取令牌
                            model.Dynamictoken = dtToken.Rows[Utility.GetRandNum(1, 99)]["dynamictoken"].ToString();
                            if (string.IsNullOrEmpty(model.Dynamictoken))
                            {
                                bizErrStr = this.GetI18nLangItem("noFoundTokenText", this.i18nModuleCurrLang);
                            }
                            else
                            {
                                resdata = this.MakeResponseData("1", base.successStr, model.Dynamictoken, string.Empty);
                            }
                        }
                        else
                        {
                            bizErrStr = this.GetI18nLangItem("noFoundTokens", this.i18nModuleCurrLang);
                        }

                        #endregion
                    }
                    else
                    {
                        bizErrStr = this.resdata.resptoolstr;
                    }
                }
                else
                {
                    bizErrStr = res.Exception;
                }
                if (!string.IsNullOrEmpty(bizErrStr))
                {
                    resdata = this.MakeResponseData("0", base.errorStr + bizErrStr, string.Empty, string.Empty);
                }
            }
            catch (Exception ex)
            {
                resdata = this.MakeResponseData("0", this.GetI18nLangItem("GetTokenErr", this.i18nModuleCurrLang) + ex.Message, string.Empty, string.Empty);
            }

            return(json.Serialize(resdata));
        }