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)); }
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())); } } }
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); }
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); }