Пример #1
0
        public ActionResult Login(LoginModelView loginInfo)
        {
            if (ModelState.IsValid)
            {
                var model = userBll.Get(c => c.LoginName == loginInfo.LoginName && c.PassWord == loginInfo.Password);
                if (model != null)
                {
                    var extends = model.toEntity <UsersExtend>();
                    if (model.OrganId != null)
                    {
                        var organ = _organBll.Get(c => c.OrganId == model.OrganId);
                        extends.OrganName = organ.OrganName;
                    }
                    if (model.DepartmentId != null)
                    {
                        var dep = _departmentBll.Get(c => c.DepartmentId == model.DepartmentId);
                        extends.DepartmentName = dep.DepartmentName;
                    }

                    WebHelper.FormPrincipal.MyFormsPrincipal <UserInfo> .SignIn(model.LoginName, new UserInfo()
                    {
                        Id = model.UserId
                    }, 40);

                    //将用户信息存入缓存
                    DepositHelper.Set(RedisKeyManager.LoginUserInfo(model.UserId.ToString()), extends);
                    return(Success("登陆成功"));
                }
                else
                {
                    return(Fail("登陆失败"));
                }
            }
            return(View(loginInfo));
        }
Пример #2
0
 public ViewPageBase()
 {
     if (HttpContext.Current.Request.IsAuthenticated)
     {
         var data = HttpContext.Current.User as MyFormsPrincipal <UserInfo>;
         if (data != null)
         {
             this.CurrentUser = DepositHelper.GetAsync <UsersExtend>(RedisKeyManager.LoginUserInfo((data).UserData.Id.ToString()));
         }
     }
 }
Пример #3
0
        public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext)
        {
            MyFormsPrincipal <UserInfo> .TrySetUserInfo(HttpContext.Current);

            if (!filterContext.HttpContext.Request.IsAuthenticated)
            {
                filterContext.Result = new RedirectResult("/Home/Login");
            }
            else
            {
                var baseContorller = filterContext.Controller as BaseController;
                baseContorller.CurrentUser = DepositHelper.GetAsync <UsersExtend>(RedisKeyManager.LoginUserInfo((HttpContext.Current.User as MyFormsPrincipal <UserInfo>).UserData.Id.ToString()));;
            }
            base.OnAuthorization(filterContext);
        }
Пример #4
0
        public override void OnException(ExceptionContext filterContext)
        {
            filterContext.ExceptionHandled = true;                                               //表示已经处理 不需要mvc框架处理
            var         UserData      = HttpContext.Current.User as MyFormsPrincipal <UserInfo>; //当前操作用户
            UsersExtend curentUser    = null;
            var         routeValueDic = filterContext.RouteData.Values;
            string      actionParameterInfo;

            try
            {
                actionParameterInfo = GetActionParametersInfoStr(filterContext);
            }
            catch
            {
                actionParameterInfo = "参数信息:不能处理参数绑定";
            }
            if (UserData != null)
            {
                curentUser = DepositHelper.GetAsync <UsersExtend>(RedisKeyManager.LoginUserInfo(UserData.UserData.Id.ToString()));
            }
            //如果是ajax请求则返回json格式数据  否则跳转到错误页面
            if (filterContext.HttpContext.Request.IsAjaxRequest())
            {
                JsonResult json = new JsonResult();
                json.Data = new ProcessResult()
                {
                    State = ProcessEnum.Fail, Message = filterContext.Exception.Message
                };
                filterContext.Result = json;
            }
            else
            {
                filterContext.Result = new RedirectResult("/plug/Error/Error404.html");
            }
            log.Error(ClientIP.GetIp(filterContext.RequestContext.HttpContext.ApplicationInstance.Request), curentUser == null ? "未登陆" : curentUser.LoginName, filterContext.HttpContext.Request.UrlReferrer.ToString(), routeValueDic["action"].ToString(), "mvc全局捕获异常", filterContext.Exception, actionParameterInfo);//写入日志
            base.OnException(filterContext);
        }