public void OnActionExecuting(ActionExecutingContext context) { if (context.Controller is BaseController controller) { controller.Log = controller.Log ?? DefaultFilter.GetLogInfo(context); controller.Log.Account = controller.GetSession()?.Account; controller.OnActionExecuting(context); } }
public virtual void OnActionExecuting(ActionExecutingContext context) { if (Consts.IsTesting) { return; } if (!(context.ActionDescriptor is ControllerActionDescriptor action)) { return; } if (!(context.Controller is BaseController controller)) { return; } //标记了[AllowAnonymous]的方法被Pass掉 if (action.MethodInfo.CustomAttributes.Any(attr => typeof(AllowAnonymousAttribute).IsAssignableFrom(attr.AttributeType))) { return; } // 例外的方法不进行判断 if (ExceptActions.Contains(controller.GetType().Name + "." + action.MethodInfo.Name)) { return; } controller.Log = controller.Log ?? DefaultFilter.GetLogInfo(context); var token = context.HttpContext.Request.Headers["token"].FirstOrDefault(); if (token == null) { token = context.HttpContext.Request.Query["token"]; } if (String.IsNullOrEmpty(token)) { context.Result = new JsonResult(MSG.NotLogined); controller.Log.Message = MSG.NotLogined.Message; } else { var sessionProvider = Consts.ServiceProvider.GetService <SessionProvider>(); var session = sessionProvider.Get(token); if (session == null) { context.Result = new JsonResult(MSG.SessionExpired); controller.Log.Message = MSG.SessionExpired.Message; } } }