public void Configure(IApplicationBuilder app)
{
app.UseMiddleware<CustomMiddleware>();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
[Authorize(Roles = "Admin")]
public IActionResult AdminDashboard()
{
return View();
}
public class CustomResourceFilter : IResourceFilter
{
public void OnResourceExecuting(ResourceExecutingContext context)
{
// Pre-processing logic
}
public void OnResourceExecuted(ResourceExecutedContext context)
{
// Post-processing logic
}
}
public class CustomActionFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
// Pre-action logic
}
public void OnActionExecuted(ActionExecutedContext context)
{
// Post-action logic
}
}
public class CustomExceptionFilter : IExceptionFilter
{
public void OnException(ExceptionContext context)
{
// Custom exception handling logic
context.Result = new ViewResult { ViewName = "Error" };
context.ExceptionHandled = true;
}
}
public class CustomResultFilter : IResultFilter
{
public void OnResultExecuting(ResultExecutingContext context)
{
// Pre-result logic
}
public void OnResultExecuted(ResultExecutedContext context)
{
// Post-result logic
}
}
services.AddControllers(options =>
{
options.Filters.Add<CustomActionFilter>(); // Controller-level filter
});