public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { IList <FilterDescriptor> actionDescriptor = context.ActionDescriptor.FilterDescriptors; bool isCheckToken = true; foreach (var filterDescriptors in actionDescriptor) { if (filterDescriptors.Filter.GetType() == typeof(AllowAnonymousFilter)) { await next(); isCheckToken = false; break; } } if (isCheckToken) { var valid = await _currentContext.CheckAuthenToken(); if (valid) { await next(); } else { context.Result = new ContentResult() { Content = "Unauthorized", StatusCode = (int)HttpStatusCode.Unauthorized }; } } }