public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); //EventLog.WriteLog("start3" + IsCheck); if (IsCheck) { if (filterContext.HttpContext.User == null) { return; } if (filterContext.HttpContext.User.Identity == null) { return; } //校验用户是否已经登录 if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { //跳转到登陆页 filterContext.Result = new RedirectResult("~/account/login?error=4", true); return; } var user = new LMIdentityDbContext().Users.Find(filterContext.HttpContext.User.Identity.GetUserId()); if (user == null || (user.Role != "科目一" && user.Role != "科目四")) { //跳转到登陆页 filterContext.Result = new RedirectResult("~/account/login?error=1", true); return; } if (user.Role == "科目一" || user.Role == "科目四") { if (Cookie.GetCookie("guid") != filterContext.HttpContext.User.Identity.GetUserId()) { //跳转到登陆页 超时过期 filterContext.Result = new RedirectResult("~/account/login?error=5", true); return; } } if (user.LastLoginTime != null) { //每5分钟,如果会员有操作,更新上次登录时间为现在 if (DateHelper.DateDiff(DateInterval.Minute, user.LastLoginTime.Value, DateTime.Now) > 5) { user.LastLoginTime = DateTime.Now; using (var db = new LMIdentityDbContext()) { string sql = string.Format("update aspnetusers set LastLoginTime='{0}' where id='{1}'", user.LastLoginTime, filterContext.HttpContext.User.Identity.GetUserId()); db.Database.ExecuteSqlCommand(sql); } } } } }
public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); //EventLog.WriteLog("start3" + IsCheck); if (IsCheck) { if (filterContext.HttpContext.User == null) { return; } if (filterContext.HttpContext.User.Identity == null) { return; } //校验用户是否已经登录 if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { //跳转到登陆页 filterContext.Result = new RedirectResult("~/m/home/index?error=4", true); return; } var user = new LMIdentityDbContext().Users.Find(filterContext.HttpContext.User.Identity.GetUserId()); if (user == null || (user.Role != "admin" || user.RoleLevel != 0)) { //跳转到登陆页 filterContext.Result = new RedirectResult("~/m/home/index?error=1", true); return; } if (Cookie.GetCookie("guid") != filterContext.HttpContext.User.Identity.GetUserId()) { //跳转到登陆页 超时过期 filterContext.Result = new RedirectResult("~/m/home/index?error=5", true); return; } } }