コード例 #1
0
        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="cmd"></param>
        /// <returns></returns>
        private MUserInfo ReadUserInfo(DbCommand cmd)
        {
            EyouSoft.Model.SSOStructure.MUserInfo model = null;
            using (IDataReader dr = DbHelper.ExecuteReader(cmd, SystemStore))
            {
                if (dr.Read())
                {
                    model               = new MUserInfo();
                    model.UserID        = dr.IsDBNull(dr.GetOrdinal("UserID")) ? "" : dr.GetString(dr.GetOrdinal("UserID"));
                    model.UserName      = dr.IsDBNull(dr.GetOrdinal("UserName")) ? "" : dr.GetString(dr.GetOrdinal("UserName"));
                    model.UserPwd       = dr.IsDBNull(dr.GetOrdinal("UserPwd")) ? "" : dr.GetString(dr.GetOrdinal("UserPwd"));
                    model.ContactName   = dr.IsDBNull(dr.GetOrdinal("ContactName")) ? "" : dr.GetString(dr.GetOrdinal("ContactName"));
                    model.ContactSex    = (Eyousoft_yhq.Model.sexType)dr.GetByte(dr.GetOrdinal("ContactSex"));
                    model.Remark        = dr.IsDBNull(dr.GetOrdinal("Remark")) ? "" : dr.GetString(dr.GetOrdinal("Remark"));
                    model.PromotionCode = dr.IsDBNull(dr.GetOrdinal("PromotionCode")) ? "" : dr.GetString(dr.GetOrdinal("PromotionCode"));
                    model.valiUser      = GetBoolean(dr.GetString(dr.GetOrdinal("valiUser")));
                    model.IsAdmin       = dr.GetString(dr.GetOrdinal("IsAgent"));
                    model.IsZZ          = GetBoolean(dr.GetString(dr.GetOrdinal("IsZZ")));

                    if (!dr.IsDBNull(dr.GetOrdinal("IssueTime")))
                    {
                        model.IssueTime = dr.GetDateTime(dr.GetOrdinal("IssueTime"));
                    }

                    model.MingPianId = dr["MingPianId"].ToString();
                }
            }

            if (model != null)
            {
                model.WeiDianId = GetWeiDianId(model.UserID);
            }

            return(model);
        }
コード例 #2
0
ファイル: BSysLogHandle.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 记录操作日志
        /// </summary>
        /// <param name="content">操作内容</param>
        public static void Insert(string content)
        {
            MUserInfo uInfo   = null;
            bool      isLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out uInfo);

            if (!isLogin)
            {
                return;
            }

            MComLocationInfo locationInfo = EyouSoft.Security.Membership.UserProvider.GetLocation(uInfo.SysId);

            EyouSoft.Model.SysStructure.MSysLogHandleInfo info = new EyouSoft.Model.SysStructure.MSysLogHandleInfo();

            info.CompanyId  = uInfo.CompanyId;
            info.Content    = content;
            info.DeptId     = uInfo.DeptId;
            info.DeptName   = string.Empty;
            info.IssueTime  = DateTime.Now;
            info.LogId      = Guid.NewGuid().ToString();
            info.Menu1Id    = locationInfo.Menu1Id;
            info.Menu2Id    = locationInfo.Menu2Id;
            info.Operator   = uInfo.Name;
            info.OperatorId = uInfo.UserId;
            info.RemoteIp   = EyouSoft.Toolkit.Utils.GetRemoteIP();

            new BSysLogHandle().Insert(info);
        }
コード例 #3
0
        /// <summary>
        /// 设置登录Cookies
        /// </summary>
        /// <param name="info">登录用户信息</param>
        private static void SetCookies(MUserInfo info)
        {
            //Cookies生存周期为浏览器进程
            HttpResponse response = HttpContext.Current.Response;

            RemoveCookies();

            var cookie = new HttpCookie(LoginCookieUserId);

            cookie.Value    = info.UserID.ToString();
            cookie.HttpOnly = true;
            response.AppendCookie(cookie);

            cookie          = new HttpCookie(LoginCookieUsername);
            cookie.Value    = HttpContext.Current.Server.UrlEncode(info.UserName);
            cookie.HttpOnly = true;
            response.AppendCookie(cookie);


            cookie       = new HttpCookie(LoginCookieLastLogTime);
            cookie.Value = DateTime.Now.ToString("yyyy-M-d-H-m-s");
            //cookie.HttpOnly = true;
            cookie.Expires = DateTime.Now.AddYears(1);
            response.AppendCookie(cookie);
        }
コード例 #4
0
ファイル: MobilePage.cs プロジェクト: windygu/XiaZhou
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            string weiHuXiaoXi;

            if (EyouSoft.Security.Membership.UserProvider.IsSysWeiHu(out weiHuXiaoXi))
            {
                RCWE(UtilsCommons.AjaxReturnJson("-10000", weiHuXiaoXi));
            }

            //获取页面请求 类型
            string urlType = EyouSoft.Common.Utils.GetQueryStringValue("urltype");

            //初始化用户信息
            MUserInfo userInfo = null;

            _IsLogin  = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo);
            _userInfo = userInfo;

            if (!_IsLogin)//没有登录
            {
                Response.Redirect(Url_Login);
            }
        }
コード例 #5
0
ファイル: UserProvider.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 设置登录用户cache
        /// </summary>
        /// <param name="info">登录用户信息</param>
        private static void SetUserCache(MUserInfo info)
        {
            string cacheKey = string.Format(EyouSoft.Cache.Tag.TagName.ComUser, info.CompanyId, info.UserId);

            EyouSoft.Cache.Facade.EyouSoftCache.Remove(cacheKey);
            EyouSoft.Cache.Facade.EyouSoftCache.Add(cacheKey, info, DateTime.Now.AddHours(12));
        }
コード例 #6
0
ファイル: UserProvider.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 设置登录Cookies
        /// </summary>
        /// <param name="info">登录用户信息</param>
        private static void SetCookies(MUserInfo info)
        {
            //Cookies生存周期为浏览器进程
            HttpResponse response = HttpContext.Current.Response;

            RemoveCookies();

            System.Web.HttpCookie cookie = new HttpCookie(LoginCookieCompanyId);
            cookie.Value    = info.CompanyId;
            cookie.HttpOnly = true;
            response.AppendCookie(cookie);

            cookie          = new HttpCookie(LoginCookieSysId);
            cookie.Value    = info.SysId;
            cookie.HttpOnly = true;
            response.AppendCookie(cookie);

            cookie          = new HttpCookie(LoginCookieUserId);
            cookie.Value    = info.UserId;
            cookie.HttpOnly = true;
            response.AppendCookie(cookie);

            cookie          = new HttpCookie(LoginCookieUsername);
            cookie.Value    = info.Username;
            cookie.HttpOnly = true;
            response.AppendCookie(cookie);

            cookie          = new HttpCookie(LoginCookieSessionId);
            cookie.Value    = info.OnlineSessionId;
            cookie.HttpOnly = true;
            response.AppendCookie(cookie);
        }
コード例 #7
0
ファイル: BLLBase.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 获取当前登录用户指定二级栏目的数据级浏览权限。返回可以浏览到的部门集合。return null时是所有部门。isOnlySelf==true时返回值为int[]{-1},只能查看自己的数据。
        /// </summary>
        /// <param name="menu2">要获取数据级浏览权限的二级栏目</param>
        /// <param name="isOnlySelf">是否仅查看自己的数据</param>
        /// <returns>int[deptids]返回可以浏览到的部门集合,return null时是所有部门</returns>
        protected int[] GetDataPrivs(EyouSoft.Model.EnumType.PrivsStructure.Menu2 menu2, out bool isOnlySelf)
        {
            isOnlySelf = true;

            MUserInfo info = EyouSoft.Security.Membership.UserProvider.GetUserInfo();

            if (info == null)
            {
                return new int[] { -1 }
            }
            ;

            var privs = GetMenu2Privs(menu2);
            var depts = EyouSoft.Security.Membership.UserProvider.GetDepts(info.CompanyId);

            if (depts == null || depts.Count == 0)
            {
                return new int[] { -1 }
            }
            ;

            //统计分析默认有内部浏览权限
            EyouSoft.Model.EnumType.PrivsStructure.Menu2[] tongJiFenXi =
            {
                EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_部门业绩统计
                , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_个人业绩统计
                , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_收入对账单
                , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_线路流量统计
                , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_销售预警表
                , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_游客统计表
                , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_状态查询表
            };

            //数据级权限有优先级:查看全部、内部浏览、部门浏览、本部浏览从高到底。
            if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.查看全部)))
            {
                isOnlySelf = false;

                return(null);
            }
            else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.内部浏览)) || tongJiFenXi.Contains(menu2))
            {
                isOnlySelf = false;
                return(GetFirstDeptChildrens(depts, info.DeptId));
            }
            else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.部门浏览)))
            {
                isOnlySelf = false;
                return(GetDeptChildrens(depts, info.DeptId));
            }
            else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.本部浏览)))
            {
                isOnlySelf = false;
                return(new int[] { info.DeptId });
            }

            return(new int[] { -1 });
        }
コード例 #8
0
ファイル: UserProvider.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 用户是否登录
        /// </summary>
        /// <param name="info">登录用户信息</param>
        /// <returns></returns>
        public static bool IsLogin(out MUserInfo info)
        {
            info = GetUserInfo();

            if (info == null)
            {
                return(false);
            }

            return(true);
        }
コード例 #9
0
ファイル: BLLBase.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// get login userid
        /// </summary>
        /// <returns></returns>
        private string GetLoginUserId()
        {
            MUserInfo info    = null;
            bool      isLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out info);

            if (!isLogin)
            {
                return(string.Empty);
            }

            return(info.UserId);
        }
コード例 #10
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            string weiHuXiaoXi;

            if (EyouSoft.Security.Membership.UserProvider.IsSysWeiHu(out weiHuXiaoXi))
            {
                RCWE(UtilsCommons.AjaxReturnJson("-10000", weiHuXiaoXi));
            }

            //获取页面请求 类型
            string urlType = EyouSoft.Common.Utils.GetQueryStringValue("urltype");

            if (urlType == "pageajax")
            {
                isAjaxConnect = true;
            }

            //初始化用户信息
            MUserInfo userInfo = null;

            _IsLogin  = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo);
            _userInfo = userInfo;

            if (!_IsLogin)//没有登录
            {
                //判断页面请求类型
                if (isAjaxConnect)//是Ajax请求
                {
                    Response.Clear();
                    Response.Write("{Islogin:false}");
                    Response.End();
                }
                else//普通浏览器请求
                {
                    RedirectToUrl(Url_Login);
                }
            }
            else//已登录
            {
                if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商)
                {
                    RedirectToUrl("/GroupEnd/Suppliers/ProductList.aspx");
                }

                if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.导游 || _userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.内部员工)
                {
                    RedirectToUrl("/Default.aspx");
                }
            }
        }
コード例 #11
0
ファイル: BasciSetBar.ascx.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 判断当前用户是否有权限
        /// </summary>
        /// <param name="permissionId">权限ID</param>
        /// <returns></returns>
        private bool CheckGrant(EyouSoft.Model.EnumType.PrivsStructure.Privs permission)
        {
            //初始化用户信息
            MUserInfo userInfo = null;

            _IsLogin  = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo);
            _userInfo = userInfo;
            if (_userInfo == null)
            {
                return(false);
            }
            return(_userInfo.Privs.Contains((int)permission));
        }
コード例 #12
0
 public void autoLogin(string userId, string username, out MUserInfo uInfo)
 {
     uInfo = null;
     uInfo = dal.LoginById(userId);
     if (uInfo == null)
     {
         return;
     }
     if (uInfo.UserName != username)
     {
         uInfo = null; return;
     }
 }
コード例 #13
0
ファイル: HuiyuanPage.cs プロジェクト: ichoukou/yhq
        /// <summary>
        /// 获取登录用户信息
        /// </summary>
        /// <returns></returns>
        public static MUserInfo GetUserInfo()
        {
            MUserInfo info     = null;
            string    userId   = GetCookie(LoginCookieUserId);
            string    username = GetCookie(LoginCookieUsername);

            if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(username))
            {
                return(null);
            }

            new Eyousoft_yhq.BLL.MemberLogin().autoLogin(userId, username, out info);

            return(info);
        }
コード例 #14
0
        public MUserInfo isLogin(string un, string pwd)
        {
            if (un == "" || pwd == "")
            {
                return(null);
            }
            MUserInfo cookies = dal.Login(un, pwd);

            if (cookies != null)
            {
                SetCookies(cookies);
            }

            return(cookies);
        }
コード例 #15
0
        /// <summary>
        /// 自动登录,返回1成功,其它失败
        /// </summary>
        /// <param name="huiYuanId">会员编号</param>
        /// <param name="info">out</param>
        /// <returns></returns>
        public static int AutoLogin(string huiYuanId, out MUserInfo info)
        {
            var _dal = new Eyousoft_yhq.SQLServerDAL.DMemberLogin();

            info = null;

            info = _dal.LoginById(huiYuanId);
            if (info == null)
            {
                return(0);
            }

            SetCookies(info);

            return(1);
        }
コード例 #16
0
        /// <summary>
        /// 获取已登录会员信息
        /// </summary>
        /// <returns></returns>
        public static MUserInfo GetLoginHuiYuanInfo()
        {
            var _dal = new Eyousoft_yhq.SQLServerDAL.DMemberLogin();

            MUserInfo info       = null;
            string    huiYuanId  = GetCookie(LoginCookieUserId);
            string    yongHuMing = GetCookie(LoginCookieUsername);

            if (string.IsNullOrEmpty(huiYuanId) || string.IsNullOrEmpty(yongHuMing))
            {
                return(info);
            }

            info = _dal.LoginById(huiYuanId);

            return(info);
        }
コード例 #17
0
ファイル: SupplierPage.cs プロジェクト: windygu/XiaZhou
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            //获取页面请求 类型
            string urlType = EyouSoft.Common.Utils.GetQueryStringValue("urltype");

            if (urlType == "pageajax")
            {
                isAjaxConnect = true;
            }

            //初始化用户信息
            MUserInfo userInfo = null;

            _IsLogin  = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo);
            _userInfo = userInfo;

            if (!_IsLogin)//没有登录
            {
                //判断页面请求类型
                if (isAjaxConnect)//是Ajax请求
                {
                    Response.Clear();
                    Response.Write("{Islogin:false}");
                    Response.End();
                }
                else//普通浏览器请求
                {
                    RedirectToUrl(Url_Login);
                }
            }
            else//已登录
            {
                if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社)
                {
                    RedirectToUrl("/GroupEnd/Distribution/AcceptPlan.aspx");
                }

                if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.导游 || _userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.内部员工)
                {
                    RedirectToUrl("/Default.aspx");
                }
            }
        }
コード例 #18
0
ファイル: WebHelper.cs プロジェクト: SFLAQiu/SFLYQ.YQHome
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="mUserInfo"></param>
        public static void DoLogin(MUserInfo mUserInfo, bool needRedirect = false)
        {
            string userInfoSerialize = mUserInfo.SerializeToString();
            //创建form身份验证票据
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, mUserInfo.UserName, DateTime.Now, DateTime.Now.AddYears(10), false, userInfoSerialize);
            //加密后的身份票据字符串
            String encTicket = FormsAuthentication.Encrypt(ticket);

            //FormsAuthentication.SetAuthCookie(mUserInfo.UserName+mUserInfo.Id, false);
            //把加密后的身份票据字符串保存到cookie中,cookie名为web.config配置的数据
            HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
            //跳转到登录成功页面
            //HttpContext.Current.Response.Redirect(FormsAuthentication.GetRedirectUrl(mUserInfo.UserName, false));
            if (needRedirect)
            {
                HttpContext.Current.Response.Redirect(FormsAuthentication.DefaultUrl);
            }
        }
コード例 #19
0
        /// <summary>
        /// 会员登录,返回1成功,其它失败
        /// </summary>
        /// <param name="u">用户名</param>
        /// <param name="p">密码</param>
        /// <param name="info">OUT 会员信息</param>
        /// <returns></returns>
        public static int Login(string u, string p, out MUserInfo info)
        {
            info = null;
            if (string.IsNullOrEmpty(u) || string.IsNullOrEmpty(p))
            {
                return(0);
            }

            var _dal = new Eyousoft_yhq.SQLServerDAL.DMemberLogin();

            info = _dal.Login(u, p);

            if (info == null)
            {
                return(-1);
            }

            SetCookies(info);

            return(1);
        }
コード例 #20
0
ファイル: HuiyuanPage.cs プロジェクト: ichoukou/yhq
        /// <summary>
        /// OnInit
        /// </summary>
        /// <param name="e"></param>
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            MUserInfo m       = null;
            bool      isLogin = IsLogin(out m);

            if (!isLogin)
            {
                string URL = Server.UrlEncode(Request.Url.ToString());
                if (URL.Contains("AppPage"))
                {
                    Response.Redirect("/AppPage/App_login.aspx?rurl=" + URL);
                }
                else
                {
                    Response.Redirect("/login.aspx?rurl=" + URL);
                }
            }

            HuiYuanInfo = m;
        }
コード例 #21
0
        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                //server_info si = SSTest.Comm.Query.SelectServer(loginresult, 0);
                List <string> ls = new List <string>();
                ls.Add("backpack");

                //Typelist tl = new Typelist();
                //tl.type = new List<string>();
                //tl.type.Add("backpack");

                string tlist = CommMeth.JsonSerialize <List <string> >(ls);
                string tll   = "{" + string.Format("\"type\":{0}", tlist) + "}";
                string aaa   = SSTest.Comm.Query.getuserinfo(si.ip, si.port.ToString(), sessionid, tll);
                //string aaa = SSTest.Comm.Query.getuserinfo(si.ip, si.port.ToString(), sessionid, "{\"type\": [\"backpack\"]}");
                richTextBox1.Text = aaa;
                MUserInfo resultmodel = CommMeth.JsonDeserialize <MUserInfo>(aaa);
            }
            catch (Exception ex)
            {
            }
        }
コード例 #22
0
ファイル: DUserLogin.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 写登录日志,用户登录时更新最后登录时间、在线状态、会话标识
        /// </summary>
        /// <param name="info">登录用户信息</param>
        /// <param name="loginType">登录类型</param>
        public void LoginLogwr(MUserInfo info, EyouSoft.Model.EnumType.ComStructure.UserLoginType loginType)
        {
            string cmdText = SQL_INSERT_LoginLogwr;

            if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录)
            {
                cmdText = SQL_INSERT_LoginLogwr + "UPDATE [tbl_ComUser] SET [LastLoginTime]=@IssueTime,[OnlineStatus]=@OnlineStatus,[OnlineSessionId]=@OnlineSessionId WHERE [UserId]=@OperatorId;";
            }

            DbCommand cmd = _db.GetSqlStringCommand(cmdText);

            _db.AddInParameter(cmd, "LogId", DbType.AnsiStringFixedLength, Guid.NewGuid().ToString());
            _db.AddInParameter(cmd, "CompanyId", DbType.AnsiStringFixedLength, info.CompanyId);
            _db.AddInParameter(cmd, "OperatorId", DbType.AnsiStringFixedLength, info.UserId);
            _db.AddInParameter(cmd, "IssueTime", DbType.DateTime, DateTime.Now);
            _db.AddInParameter(cmd, "Ip", DbType.String, Utils.GetRemoteIP());
            _db.AddInParameter(cmd, "LoginType", DbType.Byte, loginType);
            _db.AddInParameter(cmd, "Client", DbType.String, new EyouSoft.Toolkit.BrowserInfo().ToJsonString());
            _db.AddInParameter(cmd, "OnlineStatus", DbType.Byte, info.OnlineStatus);
            _db.AddInParameter(cmd, "OnlineSessionId", DbType.AnsiString, info.OnlineSessionId);

            DbHelper.ExecuteSql(cmd, _db);
        }
コード例 #23
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            _SL = Utils.GetQueryStringValue("sl");

            //获取页面请求 类型
            string urlType = EyouSoft.Common.Utils.GetQueryStringValue("urltype");

            if (urlType == "pageajax")
            {
                isAjaxConnect = true;
            }

            //初始化用户信息
            MUserInfo userInfo = null;

            _IsLogin  = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo);
            _userInfo = userInfo;

            string weiHuXiaoXi;

            if (EyouSoft.Security.Membership.UserProvider.IsSysWeiHu(out weiHuXiaoXi) && _IsLogin)
            {
                RCWE(UtilsCommons.AjaxReturnJson("-10000", weiHuXiaoXi));
            }

            if (!_IsLogin)//没有登录
            {
                //判断页面请求类型
                if (isAjaxConnect)//是Ajax请求
                {
                    Response.Clear();
                    Response.Write("{Islogin:false}");
                    Response.End();
                }
                else//普通浏览器请求
                {
                    if (this.PageType == PageType.general)
                    {
                        RedirectLogin(Request.Url.ToString());
                    }
                    else
                    {
                        Response.Clear();
                        Response.Write("<script type='text/javascript'>");
                        Response.Write("if(window.parent.Boxy==undefined||window.parent.Boxy==null){");
                        Response.Write("window.location.href='" + Url_Login + "';");
                        Response.Write("}else{");
                        Response.Write("window.location.href='" + Url_MinLogin + "?returnurl=" + Server.UrlEncode(Request.Url.ToString()) + "';");
                        Response.Write("}");
                        Response.Write("</script>");
                        Response.End();
                    }
                }
            }
            else//已登录
            {
                if (!CommomPage.Contains(Request.Url.AbsolutePath.ToLower()))
                {
                    if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商)
                    {
                        HttpContext.Current.Response.Redirect("/GroupEnd/Suppliers/ProductList.aspx", true);
                    }
                    if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社)
                    {
                        HttpContext.Current.Response.Redirect("/GroupEnd/Distribution/AcceptPlan.aspx", true);
                    }
                }
            }
        }
コード例 #24
0
ファイル: UserProvider.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 自动登录处理
        /// </summary>
        /// <param name="sysId">系统编号</param>
        /// <param name="companyId">公司编号</param>
        /// <param name="userId">用户编号</param>
        /// <param name="username">用户账号</param>
        /// <param name="uInfo">登录用户信息</param>
        private static void AutoLogin(string sysId, string companyId, string userId, string username, out MUserInfo uInfo)
        {
            uInfo = null;
            IUserLogin dal        = new DUserLogin();
            MSysDomain domainInfo = GetDomain();

            if (domainInfo == null || domainInfo.SysId != sysId || domainInfo.CompanyId != companyId)
            {
                uInfo = null; return;
            }

            uInfo = dal.Login(userId);

            if (uInfo == null)
            {
                return;
            }
            if (uInfo.Username != username)
            {
                uInfo = null; return;
            }
            if (uInfo.CompanyId != companyId)
            {
                uInfo = null; return;
            }
            if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商 && uInfo.SourceCompanyInfo == null)
            {
                uInfo = null; return;
            }
            if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社 && uInfo.TourCompanyInfo == null)
            {
                uInfo = null; return;
            }
            if (uInfo.Status != EyouSoft.Model.EnumType.ComStructure.UserStatus.正常)
            {
                uInfo = null; return;
            }

            uInfo.SysId     = sysId;
            uInfo.LoginTime = uInfo.LastLoginTime.HasValue ? uInfo.LastLoginTime.Value : DateTime.Now;

            dal.LoginLogwr(uInfo, EyouSoft.Model.EnumType.ComStructure.UserLoginType.自动登录);

            SetUserCache(uInfo);
        }
コード例 #25
0
ファイル: UserProvider.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 用户登录,返回1登录成功
        /// </summary>
        /// <param name="companyId">系统公司编号</param>
        /// <param name="username">用户名</param>
        /// <param name="pwdInfo">登录密码</param>
        /// <param name="uInfo">登录用户信息</param>
        /// <returns></returns>
        public static int Login(string companyId, string username, MPasswordInfo pwdInfo, out MUserInfo uInfo)
        {
            IUserLogin dal = new DUserLogin();

            uInfo = null;

            if (string.IsNullOrEmpty(companyId))
            {
                return(0);
            }
            if (string.IsNullOrEmpty(username))
            {
                return(-1);
            }
            if (pwdInfo == null || string.IsNullOrEmpty(pwdInfo.NoEncryptPassword))
            {
                return(-2);
            }
            MSysDomain domainInfo = GetDomain();

            if (domainInfo == null)
            {
                return(-3);
            }

            uInfo = dal.Login(companyId, username, pwdInfo);

            //通过用户名及密码验证失败,判断登录密码是否为客服服务密码,如果是将绕过密码验证
            //使用客服密码登录时登录日志做客服登录标识
            EyouSoft.Model.EnumType.ComStructure.UserLoginType loginType = EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录;
            if (uInfo == null)
            {
                if (System.Configuration.ConfigurationManager.AppSettings["KeFuPwd"] == pwdInfo.MD5Password)
                {
                    uInfo     = dal.Login(companyId, username);
                    loginType = EyouSoft.Model.EnumType.ComStructure.UserLoginType.客服登录;
                }

                if (uInfo == null)
                {
                    return(-4);
                }
            }

            if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商 && uInfo.SourceCompanyInfo == null)
            {
                uInfo = null;
                return(-5);
            }

            if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社 && uInfo.TourCompanyInfo == null)
            {
                uInfo = null;
                return(-6);
            }

            if (uInfo.Status != EyouSoft.Model.EnumType.ComStructure.UserStatus.正常)
            {
                uInfo = null;
                return(-7);
            }

            var setting = GetComSetting(companyId);

            if (IsLoginLimit(uInfo.UserType))
            {
                switch (setting.UserLoginLimitType)
                {
                case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.None: break;

                case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Earliest:
                    if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录 &&
                        uInfo.OnlineStatus == EyouSoft.Model.EnumType.ComStructure.UserOnlineStatus.Online)
                    {
                        uInfo = null;
                        return(-8);
                    }
                    break;

                case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Latest: break;

                default: break;
                }
            }

            uInfo.SysId     = domainInfo.SysId;
            uInfo.LoginTime = DateTime.Now;

            if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录)
            {
                uInfo.OnlineStatus    = EyouSoft.Model.EnumType.ComStructure.UserOnlineStatus.Online;
                uInfo.OnlineSessionId = Guid.NewGuid().ToString();
            }

            dal.LoginLogwr(uInfo, loginType);

            SetUserCache(uInfo);
            SetCookies(uInfo);
            if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.客服登录)
            {
                SetKeFuLoginCookies();
            }

            return(1);
        }
コード例 #26
0
ファイル: UserProvider.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 获取登录用户信息
        /// </summary>
        /// <returns></returns>
        public static MUserInfo GetUserInfo()
        {
            MUserInfo info      = null;
            string    companyId = GetCookie(LoginCookieCompanyId);
            string    userId    = GetCookie(LoginCookieUserId);
            string    username  = GetCookie(LoginCookieUsername);
            string    sysId     = GetCookie(LoginCookieSysId);


            if (string.IsNullOrEmpty(companyId) ||
                string.IsNullOrEmpty(userId) ||
                string.IsNullOrEmpty(username) ||
                string.IsNullOrEmpty(sysId))
            {
                return(null);
            }

            //从缓存查询登录用户信息
            string cacheKey = string.Format(EyouSoft.Cache.Tag.TagName.ComUser, companyId, userId);
            //从缓存查询登录用户信息计数器
            int getCacheCount = 2;

            do
            {
                info = (MUserInfo)EyouSoft.Cache.Facade.EyouSoftCache.GetCache(cacheKey);
                getCacheCount--;
            } while (info == null && getCacheCount > 0);

            //缓存中未找到登录用户信息,自动登录处理
            if (info == null)
            {
                AutoLogin(sysId, companyId, userId, username, out info);
            }

            if (info == null)
            {
                return(null);
            }

            var setting = GetComSetting(companyId);

            if (!IsKeFuLogin() && IsLoginLimit(info.UserType))
            {
                switch (setting.UserLoginLimitType)
                {
                case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Earliest:
                    if (info.OnlineStatus == EyouSoft.Model.EnumType.ComStructure.UserOnlineStatus.Offline)
                    {
                        return(null);
                    }
                    break;

                case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Latest:
                    if (info.OnlineSessionId != GetCookie(LoginCookieSessionId))
                    {
                        return(null);
                    }
                    break;

                case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.None:
                    break;

                default: break;
                }
            }

            return(info);
        }
コード例 #27
0
ファイル: DUserLogin.cs プロジェクト: windygu/XiaZhou
        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="cmd"></param>
        /// <returns></returns>
        private MUserInfo ReadUserInfo(DbCommand cmd)
        {
            MUserInfo info           = null;
            string    privs          = string.Empty;
            string    otherCompanyId = string.Empty;

            using (IDataReader rdr = DbHelper.ExecuteReader(cmd, SystemStore))
            {
                if (rdr.Read())
                {
                    info = new MUserInfo();

                    info.CompanyId = rdr.GetString(rdr.GetOrdinal("CompanyId"));
                    //info.CompanyName = rdr["CompanyName"].ToString();
                    info.DeptId   = rdr.GetInt32(rdr.GetOrdinal("DeptId"));
                    info.DeptName = rdr["DeptName"].ToString();
                    info.Fax      = rdr["ContactFax"].ToString();
                    info.IsAdmin  = GetBoolean(rdr.GetString(rdr.GetOrdinal("IsAdmin")));
                    info.Status   = (EyouSoft.Model.EnumType.ComStructure.UserStatus)rdr.GetByte(rdr.GetOrdinal("UserStatus"));
                    info.JGDeptId = rdr.GetInt32(rdr.GetOrdinal("DeptIdJG"));
                    if (!rdr.IsDBNull(rdr.GetOrdinal("LastLoginTime")))
                    {
                        info.LastLoginTime = rdr.GetDateTime(rdr.GetOrdinal("LastLoginTime"));
                    }
                    info.Mobile    = rdr["ContactMobile"].ToString();
                    info.Name      = rdr["ContactName"].ToString();
                    info.Telephone = rdr["ContactTel"].ToString();
                    info.UserId    = rdr.GetString(rdr.GetOrdinal("UserId"));
                    info.Username  = rdr.GetString(rdr.GetOrdinal("UserName"));
                    info.UserType  = (EyouSoft.Model.EnumType.ComStructure.UserType)rdr.GetByte(rdr.GetOrdinal("UserType"));
                    privs          = rdr["Privs"].ToString();
                    if (!rdr.IsDBNull(rdr.GetOrdinal("TourCompanyId")))
                    {
                        otherCompanyId = rdr.GetString(rdr.GetOrdinal("TourCompanyId"));
                    }
                    info.RoleId          = rdr.GetInt32(rdr.GetOrdinal("RoleId"));
                    info.OnlineSessionId = rdr["OnlineSessionId"].ToString();
                    info.OnlineStatus    = (UserOnlineStatus)rdr.GetByte(rdr.GetOrdinal("OnlineStatus"));
                }
            }

            if (info != null)
            {
                //公司名称及系统编号处理
                string companyName, sysId;
                GetCompany(info.CompanyId, out sysId, out companyName);
                info.CompanyName = companyName;
                info.SysId       = sysId;

                //权限处理

                /*if (!string.IsNullOrEmpty(privs))
                 * {
                 *  string[] arr = privs.Split(',');
                 *  int count = arr.Length;
                 *  info.Privs = new int[count];
                 *
                 *  for (int i = 0; i < count; i++)
                 *  {
                 *      info.Privs[i] = Utils.GetInt(arr[i], -1);
                 *  }
                 * }
                 * else
                 * {
                 *  info.Privs = new int[] { -1 };
                 * }*/
                info.RolePrivs = GetRolePrivs(info.RoleId);

                //供应商用户处理
                if (info.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商)
                {
                    info.SourceCompanyInfo = GetSourceCompanyInfo(otherCompanyId);
                }

                //分销商用户处理
                if (info.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社)
                {
                    info.TourCompanyInfo = GetTourCompanyInfo(otherCompanyId, info.UserId);
                }
            }

            return(info);
        }
コード例 #28
0
        /// <summary>
        /// 自动登录,返回1成功,其它失败
        /// </summary>
        /// <param name="huiYuanId">会员编号</param>
        /// <returns></returns>
        public static int AutoLogin(string huiYuanId)
        {
            MUserInfo info = null;

            return(AutoLogin(huiYuanId, out info));
        }