/// <summary> /// 写数据库 /// </summary> /// <param name="e"></param> private void WriteDatabase(ExceptionContext filterContext) { string controllerName = filterContext.RouteData.Values["controller"].ToString(); string actionName = filterContext.RouteData.Values["action"].ToString(); string httpMethod = filterContext.HttpContext.Request.HttpMethod; SyLogErrorAdd data = new SyLogErrorAdd(); data.ControllerName = controllerName; data.ActionName = actionName; data.HttpMethod = httpMethod; data.Url = filterContext.HttpContext.Request.FilePath; data.Message = filterContext.Exception.Message; data.CreateIp = Common.Function.GetIp(filterContext.HttpContext.Request); data.CreateTime = DateTime.Now; if (filterContext.HttpContext.Session["UserInfo"] != null) { VModel.SyPassport.UserInfo user = filterContext.HttpContext.Session["UserInfo"] as VModel.SyPassport.UserInfo; if (user != null) { data.CreateUserId = user.Id; data.CreateUserName = user.Name; data.CreateAccount = user.Account; } } BigdataBll.SyLogErrorWeb_Add(data); }
/// <summary> /// 渲染结束 /// </summary> /// <param name="filterContext"></param> public override void OnResultExecuted(ResultExecutedContext filterContext) { GetTimer(filterContext, "render").Stop(); string controllerName = filterContext.RouteData.Values["controller"].ToString(); string actionName = filterContext.RouteData.Values["action"].ToString(); string httpMethod = filterContext.HttpContext.Request.HttpMethod; var actionTimer = GetTimer(filterContext, "action"); var renderTimer = GetTimer(filterContext, "render"); SyLogMonitorAdd data = new SyLogMonitorAdd(); data.ControllerName = controllerName; data.ActionName = actionName; data.HttpMethod = httpMethod; data.Url = filterContext.HttpContext.Request.FilePath; data.CreateIp = Common.Function.GetIp(filterContext.HttpContext.Request); data.CreateTime = DateTime.Now; data.ResponseTime = Convert.ToDecimal(actionTimer.Elapsed.TotalSeconds); data.RenderTime = Convert.ToDecimal(renderTimer.Elapsed.TotalSeconds); if (filterContext.HttpContext.Session["UserInfo"] != null) { VModel.SyPassport.UserInfo user = filterContext.HttpContext.Session["UserInfo"] as VModel.SyPassport.UserInfo; if (user != null) { data.CreateUserId = user.Id; data.CreateUserName = user.Name; data.CreateAccount = user.Account; } } BigdataBll.SyLogMonitorWeb_Add(data); base.OnResultExecuted(filterContext); }
public void OnAuthorization(AuthorizationContext filterContext) { if (!filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true)) { VModel.SyPassport.UserInfo userInfo = filterContext.HttpContext.Session["UserInfo"] as VModel.SyPassport.UserInfo; if (userInfo == null) { if (filterContext.HttpContext.Request.IsAjaxRequest()) { ContentResult cr = new ContentResult(); cr.Content = "<p style=\"padding:30px 0 30px 0;text-align:center\">你的账号已经下线了请回到首页</p><p style=\"text-align:center;margin:10px 0 20px 0;\"><a href=\"/SyPassport/Login\" style=\"display:inline-block;width:80px;height:30px;line-height:30px;background-color:#36aa9d;color:#fff;text-align:center;\">重新登录</a></p>"; cr.ContentType = "application/x-javascript"; filterContext.Result = cr; } else { filterContext.Result = new RedirectResult("/SyPassport/Login"); } } } }
public ActionResult Login(int?id) { VModel.SyPassport.UserInfo userinfo = Session["UserInfo"] as VModel.SyPassport.UserInfo; if (userinfo != null) { switch (userinfo.Type) { case 12: case 26: case 27: return(RedirectToAction("Index", "ResourceHome")); case 4: return(RedirectToAction("Index", "SyUserManager")); } } VModel.SyPassport.LoginModel m = new VModel.SyPassport.LoginModel(); m.Account = Common.CookieHelper.GetCookieValue("account"); m.pwd2 = Common.CookieHelper.GetCookieValue("pwd"); m.ChkPwd = m.Account != null && m.Account.Trim() != "" ? true : false; m.SId = id; return(View(m)); }
/// <summary> /// 根据帐号获取用户信息 /// </summary> /// <param name="account"></param> /// <returns></returns> public static VModel.SyPassport.UserInfo GetUserInfo(string account) { VModel.SyPassport.UserInfo userinfo = null; using (var db = new fz_basicEntities()) { sy_user user = db.sy_user.Where(w => w.Account == account.Trim()).FirstOrDefault(); if (user != null) { userinfo = new VModel.SyPassport.UserInfo(); userinfo.Id = user.Id; userinfo.Account = user.Account; userinfo.Name = user.Name; userinfo.Type = user.Type; userinfo.Navs = db.sy_nav.Where(w => w.sy_role.Where(w1 => w1.sy_user_and_role.Where(w2 => w2.UserId == user.Id && w2.sy_role.IsEnabled == true).Any()).Any()).Select(s => s.Id).ToArray(); var sids = db.sy_nav.Where(w => userinfo.Navs.Contains(w.Id)).Select(s => s.SId).Distinct(); var spids = db.sy_system.Where(w => sids.Contains(w.Id)).Select(s => s.PId); userinfo.SysNavs = db.sy_system.Where(w => sids.Contains(w.Id) || spids.Contains(w.Id)).Select(s => s.Id).ToArray(); } } return(userinfo); }
public ActionResult Login(VModel.SyPassport.LoginModel m) { if (ModelState.IsValid) { int check = Bll.SyLoginBll.Check(m.Account, m.Password); switch (check) { case 1: //验证成功 string ticket = Guid.NewGuid().ToString(); //记录密码 if (m.ChkPwd) { Common.CookieHelper.SetCookie("account", m.Account, DateTime.Now.AddDays(30)); Common.CookieHelper.SetCookie("pwd", m.Password, DateTime.Now.AddDays(30)); } else { Common.CookieHelper.ClearCookie("account"); Common.CookieHelper.ClearCookie("pwd"); } VModel.SyPassport.UserInfo userinfo = Bll.SyLoginBll.GetUserInfo(m.Account); userinfo.ticket = ticket; Session["UserInfo"] = userinfo; Bll.SyUserTicketBll.Add(ticket, m.Account, Common.Function.GetIp(Request)); //将凭证写到数据库中 Common.CookieHelper.SetCookie("t", ticket); //将凭证写到Cookie //页面跳转 string url = ""; if (m.SId == null) { switch (userinfo.Type) { case 12: url = "/ResourceHome/Index"; break; case 26: return(Content("尚未开通学生用户功能!")); case 27: return(Content("尚未开通家长用户功能!")); case 4: url = "/SyUserManager/Index"; break; } } else { Common.Dict.Model_System sys = Common.Dict.MySystem.GetVal((int)m.SId); string homeUrl = sys == null ? "" : sys.DomainUrl + sys.HomeUrl; if (Bll.SyLoginBll.IsSameDomain("")) { url = homeUrl; } else { url = string.Format("{0}?t={1}", homeUrl, ticket); } } return(Redirect(url)); case -1: ModelState.AddModelError("Account", "你输入的用户名不存在!"); break; case -2: ModelState.AddModelError("Password", "你输入的密码有误!"); break; case -3: ModelState.AddModelError("Account", "你输入的用户名已停用!"); break; case -4: ModelState.AddModelError("Account", "学生相关功能尚未开通!"); break; } } return(View(m)); }
/// <summary> /// 构造函数 /// </summary> public BaseController() { userInfo = System.Web.HttpContext.Current.Session["UserInfo"] as VModel.SyPassport.UserInfo; }