public override async Task OnActionExecutingAsync(ActionExecuteContext context) { if (context.Action.IsDefined(typeof(AllowAnonymouseAttribute), false)) { await Task.CompletedTask; return; } var failResut = GetFailResult(context.IsApiController); var token = GetToken(context); if (string.IsNullOrEmpty(token)) { context.HttpResponse = await failResut.ExecuteResultAsync(); context.Final = true; return; } var(success, dic) = JwtHelper.ValidateToken(token, options.Secret); if (!success) { context.HttpResponse = await failResut.ExecuteResultAsync(); context.Final = true; return; } context.Controller.TempData.UserName = dic["username"]; }
public override bool OnActionExecuting(ActionExecuteContext context) { string timestampString = context.HttpContext.Request["timestamp"]; if (!string.IsNullOrEmpty(timestampString)) { double timestamp; if (!double.TryParse(timestampString, out timestamp)) { return(false); } var requestDateTime = UnixTimeStampToDateTime(timestamp); var time = DateTime.Now.Subtract(requestDateTime); if (time.TotalMinutes > 0 && time.TotalMinutes < 2) { return(true); } else { return(false); } } else { return(false); } }
public override bool OnActionExecuting(ActionExecuteContext context) { context.HttpContext.Response.Headers.CacheControl = "no-cache, no-store, max-age=0"; context.HttpContext.Response.Headers.Pragma = "no-cache"; context.HttpContext.Response.Headers.Expires = "-1"; return base.OnActionExecuting(context); }
public override bool OnActionExecuting(ActionExecuteContext context) { context.HttpContext.Response.Headers.CacheControl = "no-cache, no-store, max-age=0"; context.HttpContext.Response.Headers.Pragma = "no-cache"; context.HttpContext.Response.Headers.Expires = "-1"; return(base.OnActionExecuting(context)); }
public object ExecuteAsync(string controllerName, string actionName, IOwinContext context) { var controllerType = ApplicationAssemblyLoader.FindControllerTypeByName(controllerName); if (controllerType == null) { throw new NullReferenceException("Not Found Controller Name by" + controllerName); } var controller = (Controller)Activator.CreateInstance(controllerType); var pi = controllerType.GetTypeInfo().GetProperty("Context", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static); pi.SetValue(controller, context); var actionMethodInfo = controllerType.GetTypeInfo().GetMethod(actionName); if (actionMethodInfo == null) { throw new NullReferenceException("Not Found Action Name by" + actionName); } IDynamicMethodInvoker invoker = null; if (!actionInvokerCache.TryGetValue(actionMethodInfo, out invoker)) { invoker = new DynamicMethodInvoker(actionMethodInfo); actionInvokerCache.TryAdd(actionMethodInfo, invoker); } var parameterInfoList = actionMethodInfo.GetParameters(); var actionParams = parameterInfoList.ToActionParameters(); var paramValues = ActionRuntimeParameter.GetValuesByRequest(actionParams, context.Request); var filter = actionMethodInfo.GetCustomAttribute(typeof(ActionFilterAttribute), true) as ActionFilterAttribute; object result = null; if (filter != null) { ActionExecuteContext executeContext = new ActionExecuteContext(context, controllerName, actionName, invoker, parameterInfoList); if (filter.OnActionExecuting(executeContext)) { executeContext.Result = invoker.Invoke(controller, paramValues.ToArray()); } filter.OnActionExecuted(executeContext); result = executeContext.Result; } else { result = invoker.Invoke(controller, paramValues.ToArray()); } return(result); }
public object ExecuteAsync(string controllerName,string actionName,IOwinContext context) { var controllerType = ApplicationAssemblyLoader.FindControllerTypeByName(controllerName); if (controllerType == null) throw new NullReferenceException("Not Found Controller Name by" + controllerName); var controller = (Controller)Activator.CreateInstance(controllerType); var pi = controllerType.GetTypeInfo().GetProperty("Context",BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static); pi.SetValue(controller, context); var actionMethodInfo = controllerType.GetTypeInfo().GetMethod(actionName); if (actionMethodInfo == null) throw new NullReferenceException("Not Found Action Name by" + actionName); IDynamicMethodInvoker invoker = null; if (!actionInvokerCache.TryGetValue(actionMethodInfo, out invoker)) { invoker = new DynamicMethodInvoker(actionMethodInfo); actionInvokerCache.TryAdd(actionMethodInfo, invoker); } var parameterInfoList = actionMethodInfo.GetParameters(); var actionParams = parameterInfoList.ToActionParameters(); var paramValues = ActionRuntimeParameter.GetValuesByRequest(actionParams, context.Request); var filter = actionMethodInfo.GetCustomAttribute(typeof(ActionFilterAttribute), true) as ActionFilterAttribute; object result = null; if (filter != null) { ActionExecuteContext executeContext = new ActionExecuteContext(context, controllerName, actionName, invoker, parameterInfoList); if (filter.OnActionExecuting(executeContext)) executeContext.Result = invoker.Invoke(controller, paramValues.ToArray()); filter.OnActionExecuted(executeContext); result = executeContext.Result; } else { result = invoker.Invoke(controller, paramValues.ToArray()); } return result; }
public virtual Task OnActionExecutingAsync(ActionExecuteContext context) { return(Task.CompletedTask); }
public object ExecuteAsync(string controllerName, string actionName, IOwinContext context) { var serviceProvider = Application.CurrentApplication.ServiceProvider; var controllerType = ApplicationAssemblyLoader.FindControllerTypeByName(controllerName); if (controllerType == null) { throw new NullReferenceException("Not Found Controller Name by" + controllerName); } var controllerFactory = (IControllerFacotry)serviceProvider. GetService(typeof(IControllerFacotry)); var controller = controllerFactory.CreateController(controllerType, serviceProvider); controller.SetHttpContext(context); var actionMethodInfo = controllerType.GetTypeInfo().GetMethod(actionName); if (actionMethodInfo == null) { throw new NullReferenceException("Not Found Action Name by" + actionName); } IDynamicMethodInvoker invoker = null; if (!actionInvokerCache.TryGetValue(actionMethodInfo, out invoker)) { invoker = new DynamicMethodInvoker(actionMethodInfo); actionInvokerCache.TryAdd(actionMethodInfo, invoker); } var parameterInfoList = actionMethodInfo.GetParameters(); var actionParams = parameterInfoList.ToActionParameters(); var paramValues = ActionRuntimeParameter.GetValuesByRequest(actionParams, context.Request); var filter = actionMethodInfo.GetCustomAttribute(typeof(ActionFilterAttribute), true) as ActionFilterAttribute; object result = null; if (filter != null) { ActionExecuteContext executeContext = new ActionExecuteContext(context, controllerName, actionName, invoker, parameterInfoList); if (filter.OnActionExecuting(executeContext)) { executeContext.Result = invoker.Invoke(controller, paramValues.ToArray()); } filter.OnActionExecuted(executeContext); result = executeContext.Result; } else { result = invoker.Invoke(controller, paramValues.ToArray()); } return(result); }
public ActionResult Branches(int id, string sortBy = BranchesOrderExtensions.SortBranchesByName, int currentPage = DefaultCurrentPage, int itemsPerPage = DefaultItemsPerPage) { if (id != SafeConvert.ToInt(Session[_companyIdSessionKey], -1)) { Session[_companyIdSessionKey] = id; _branchesService.ClearState(); } _propertyCurrentCompanyService.CurrentCompany = id; ViewBag.CompanyId = id; ViewBag.LendingPage = _userAccessHelper.GetLandingPage(); var branchesController = BuildController(id); const string partialBranchesView = "Controls/Branches"; var partialView = new ActionExecuteContext<AppraisalCompanyBranchesViewModel> { ExecuteResult = viewModel => PartialView(partialBranchesView, viewModel) }; var view = new ActionExecuteContext<AppraisalCompanyBranchesViewModel> { ExecuteResult = viewModel => GetBranchesView(viewModel) }; PopulateCompanyName(id); ModelState.Clear(); return branchesController.Branches(partialView, view, sortBy, currentPage, itemsPerPage); }
public ActionResult Branches(string sortBy = BranchesOrderExtensions.SortBranchesByName, int currentPage = DefaultCurrentPage, int itemsPerPage = DefaultItemsPerPage) { var branchesController = BuildController(); const string partialBranchesView = "Controls/Branches"; var partialView = new ActionExecuteContext<AppraisalCompanyBranchesViewModel> { ExecuteResult = viewModel => PartialView(partialBranchesView, viewModel) }; var view = new ActionExecuteContext<AppraisalCompanyBranchesViewModel> { ExecuteResult = viewModel => GetBranchesView(viewModel) }; return branchesController.Branches(partialView, view, sortBy, currentPage, itemsPerPage); }
public override Task OnActionExecutedAsync(ActionExecuteContext context) { logger.LogInformation("test1 ed"); return(Task.CompletedTask); }
private string GetToken(ActionExecuteContext context) { context.HttpRequest.Cookies.TryGetValue("authorization", out string token); return(token); }
public override async Task <HttpResponse> Invoke(HttpRequest httpRequest) { try { var context = new ActionExecuteContext { HttpRequest = httpRequest }; var(controller, methodInfo, parameter) = route.Route(httpRequest); if (controller == null) { return(await HttpResponseHelper.CreateNotFoundResponseAsync()); } context.Controller = controller; context.Action = methodInfo; ((ControllerBase)controller).Request = httpRequest; var filterList = GetFilters(controller, methodInfo); var stack = new Stack <IFilter>(); for (var i = 0; i < filterList.Count; i++) { var filter = filterList[i]; await filter.OnActionExecutingAsync(context); if (context.Final) { return(context.HttpResponse); } stack.Push(filter); } await controller.OnActionExecutingAsync(context); if (context.Final) { return(context.HttpResponse); } var parameters = new List <object>(); if (parameter != null) { parameters.Add(parameter); } if (methodInfo.ReturnType.IsGenericType) //Task<IActionResult> { var actionResult = await(methodInfo.Invoke(controller, parameters.ToArray()) as Task <IActionResult>); context.HttpResponse = await actionResult.ExecuteResultAsync(); } else { var actionResult = methodInfo.Invoke(controller, parameters.ToArray()) as IActionResult; context.HttpResponse = await actionResult.ExecuteResultAsync(); } context.HttpResponse.Cookies.AddRange(controller.ResponseCookie); await controller.OnActionExecutedAsync(context); if (context.Final) { return(context.HttpResponse); } while (stack.Count != 0) { var filter = stack.Pop(); await filter.OnActionExecutedAsync(context); if (context.Final) { return(context.HttpResponse); } } return(context.HttpResponse); } catch (Exception e) { return(await HttpResponseHelper.CreateDefaultErrorResponseAsync(e)); } }