Example #1
0
 public CompanyController(IView_ServerUserInfoServices _View_ServerUserInfoServices
                          , IServerUser_PostServices _ServerUser_PostServices
                          , IServerUserServices _ServerUserServices)
 {
     base._View_ServerUserInfoServices = _View_ServerUserInfoServices;
     base._ServerUser_PostServices     = _ServerUser_PostServices;
     base._ServerUserServices          = _ServerUserServices;
 }
Example #2
0
 public JobsController(
     IView_ServerUser_PostServices _View_ServerUser_PostServices
     , IView_WorkPostFilterInfoServices _View_WorkPostFilterInfoServices
     , IServerUserServices _ServerUserServices
     , IView_CompnayInfoServices _View_CompnayInfoServices
     , IServerUser_PostServices _ServerUser_PostServices
     )
 {
     base._View_ServerUser_PostServices    = _View_ServerUser_PostServices;
     base._View_WorkPostFilterInfoServices = _View_WorkPostFilterInfoServices;
     base._ServerUserServices       = _ServerUserServices;
     base._View_CompnayInfoServices = _View_CompnayInfoServices;
     base._ServerUser_PostServices  = _ServerUser_PostServices;
 }
Example #3
0
 public MemberController(IPersonServices _PersonServices
                         , IServerUserServices _ServerUserServices)
 {
     base._PersonServices     = _PersonServices;
     base._ServerUserServices = _ServerUserServices;
 }
Example #4
0
        /// <summary>
        /// 统一验证Session[Keys.UserInfo],如果为null,则跳转到登录页面
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //0.0 判断是否有贴[SkipCheckLogin]的特性标签
            if (filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(SkipCheckLoginAttribute), false))
            {
                return;
            }
            if (filterContext.ActionDescriptor.IsDefined(typeof(SkipCheckLoginAttribute), false))
            {
                return;
            }


            //▲思路:
            //1.0 判断Session[Keys.UserInfo]是否为null
            //1.0.1 查询Cookie[Keys.IsMember]是否不为空,如果成立则模拟用户登录,
            //再将用户实体数据存入Session[Keys.UserInfo]中

            //1.1 取出Cookie中存入的Id的值

            //1.2 根据Id查询用户的实体
            //1.2.1 先要从缓存中获取Autofac容器对象
            //var container = CacheHelper.GetData<IContainer>(Keys.AutofacContainer);
            //1.2.2 找Autofac容器获取IUserServices接口的具体实现类的对象实例
            //IUserServices userServices = container.Resolve<IUserServices>();

            //1.3 根据userServices结合Id查询数据
            //var userInfo = userServices.QueryWhere(c => c.Id == userId).FirstOrDefault();
            //if (userInfo != null)
            //{
            //	//1.4 将userInfo存入Session中
            //	filterContext.HttpContext.Session[Keys.UserInfo] = userInfo;
            //}
            //else
            //{
            //	ToLoginView(filterContext);
            //}



            //1.0 判断Session[Keys.UserInfo]是否为null
            filterContext.HttpContext.Session[Keys.UserInfo] = null;
            if (filterContext.HttpContext.Session[Keys.UserInfo] == null)
            {
                //1.0.1 查询Cookie[Keys.IsMember]是否不为空,如果成立则模拟用户登录,
                //再将用户实体数据存入Session[Keys.UserInfo]中

                //1.1 取出Cookie中存入的Id的值
                var userEnCryptCookieStr = CookieHelper.Get(Keys.UserInfo);
                var userCookieStr        = "";
                if (!string.IsNullOrWhiteSpace(userEnCryptCookieStr))
                {
                    userCookieStr = userEnCryptCookieStr.DecryptStr();
                    Match match = Regex.Match(userCookieStr, @"([\S]+)\|(\d+)");
                    if (match.Success)
                    {
                        //模拟登录
                        string userIdStr = match.Groups[1].Value;
                        string idtStr    = match.Groups[2].Value;
                        int    userId    = 0; int.TryParse(userIdStr, out userId);
                        int    idt       = 0; int.TryParse(idtStr, out idt);
                        switch (idt)
                        {
                        //求职者
                        case 1:
                        {
                            //1.2 根据Id查询用户的实体
                            //1.2.1 先要从缓存中获取Autofac容器对象
                            var container = CacheHelper.GetData <IContainer>(Keys.AutofacContainer);
                            //1.2.2 找Autofac容器获取IUserServices接口的具体实现类的对象实例
                            IPersonServices personServices = container.Resolve <IPersonServices>();
                            //1.3 根据personServices结合userId查询数据
                            var person = personServices.QueryWhere(item => item.PerID == userId).FirstOrDefault();
                            if (person != null)
                            {
                                Model.User.UserInfo userInfo = new Model.User.UserInfo()
                                {
                                    IdentityType = Model.User.IdentityType.Person,
                                    UserId       = person.PerID,
                                    RealName     = person.RealName,
                                    Phone        = person.Phne,
                                    Email        = person.Email
                                };
                                //求职者登录成功
                                //1.4 将userInfo存入Session中
                                UserManage.SetCurrentUserInfo(userInfo);
                            }
                            else
                            {
                                ToLoginView(filterContext);
                            }
                        }
                        break;

                        //经纪人
                        case 2:
                        {
                            var container = CacheHelper.GetData <IContainer>(Keys.AutofacContainer);
                            IServerUserServices serverUserServices = container.Resolve <IServerUserServices>();
                            var serverUser = serverUserServices.QueryWhere(item => item.SerUserID == userId).FirstOrDefault();
                            if (serverUser != null)
                            {
                                Model.User.UserInfo userInfo = new Model.User.UserInfo()
                                {
                                    IdentityType = Model.User.IdentityType.ServerUser,
                                    UserId       = serverUser.SerUserID,
                                    RealName     = serverUser.RealName,
                                    Phone        = serverUser.Phone,
                                    Email        = serverUser.Email
                                };
                                UserManage.SetCurrentUserInfo(userInfo);
                            }
                            else
                            {
                                ToLoginView(filterContext);
                            }
                        }
                        break;

                        default:
                        {
                            ToLoginView(filterContext);
                        }
                        break;
                        }
                    }
                    else
                    {
                        ToLoginView(filterContext);
                    }
                }
                else
                {
                    ToLoginView(filterContext);
                }
            }
            base.OnActionExecuting(filterContext);
        }