|
过滤器类型 |
接口 | 默认实现 | 描述 |
| Authorization | IAuthorizationFilter | AuthorizationAttribute | 最先运行 |
| Action | IActionFilter | ActionFilterAttribute | 在动作方法前后运行 |
| Result | IResultFilter | ActionResultAttribute | 在动作结果被执行前后 |
| Exception | IExceptionFilter | HandlerErrorAttribute | 仅在过滤器、动作发生异常时 |
namespace System.Web.Mvc{
// 摘要:定义授权筛选器所需的方法。
public interface IAuthorizationFilter{
// 摘要:在需要授权时调用。
// 参数:filterContext:筛选器上下文。
void OnAuthorization(AuthorizationContext filterContext);
}
}
public class CustomAuthAttribute:AuthorizeAttribute{
/// <summary>
/// 是否对请求进行授权访问的方式
/// </summary>
/// <param name="httpContext">对请求信息进行访问的方法</param>
protected override bool AuthorizeCore(HttpContextBase httpContext){
return base.AuthorizeCore(httpContext);
}
}
|
名称 |
类型 | 描述 |
| Users | String | 一个逗号分隔的用户名列表,指定这些用户可以访问动作方法 |
| Roles | String | 一个逗号分隔的角色列表,用户必须至少有一个角色 |
public class HomeController : Controller{
[Authorize(Users ="admin,steve,jacqui",Roles ="admin")]
public ActionResult Index(){
return View();
}
}
namespace System.Web.Mvc{
// 摘要:定义异常筛选器所需的方法。
public interface IExceptionFilter{
// 摘要:在发生异常时调用。
// 参数:filterContext:
// 筛选器上下文。
void OnException(ExceptionContext filterContext);
}
}
|
名称 |
类型 | 描述 |
| Controller | ControllerBase | 返回请求的控制器对象 |
| HttpContext | HttpContextBase | 提供对请求细节的访问及对响应的访问 |
| IsChildAction | Bool | 若是自动做则返回true |
| RequestContext | RequestContext | 提供对HttpContext和路由数据的访问 |
| RouteData | RouteData | 返回请求的路由数据 |
|
名称 |
类型 | 描述 |
| ActionDescripter | ActionDescripter | 提供动作方法的细节 |
| Result | ActionResult | 用于动作方法的结果,通过非空值可取消请求 |
| Exception | Exception | 未处理的异常 |
| ExceptionHandled | Bool | 如果另一个过滤器已经把这个异常标记为已处理则返回true |
public class RangeExceptionAttribute : FilterAttribute, IExceptionFilter{
public void OnException(ExceptionContext filterContext){
}
}
|
名称 |
类型 | 描述 |
| ExceptionType | Type | 由过滤器处理的异常类型 |
| View | String | 该过滤器渲染的视图模板名 |
| Master | String | 在渲染这个过滤器的视图时使用的布局名称 |
<system.web> <!--定制错误页aa.html--> <customErrors mode="On" defaultRedirect="/Content/aa.html" /> </system.web>
[HandleError(ExceptionType =typeof(ArgumentNullException),View ="Null")]
public ActionResult Index(){
return View();
}
|
名称 |
类型 | 描述 |
| ActionName | String | 返回生成异常的Action名称 |
| ControllerName | String | 返回生成异常的Controller名称 |
| Exception | Exception | 返回此异常 |
@model HandleErrorInfo
@{
ViewBag.Title = "Sorry";
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
</head>
<body>
@Model.Exception.StackTrace
</body>
</html>
namespace System.Web.Mvc{
// 摘要:定义操作筛选器中使用的方法。
public interface IActionFilter{
// 摘要:在执行操作方法后调用。
// 参数:filterContext:
// 筛选器上下文。
void OnActionExecuted(ActionExecutedContext filterContext);
// 摘要:在执行操作方法之前调用。
// 参数:filterContext:
// 筛选器上下文。
void OnActionExecuting(ActionExecutingContext filterContext);
}
}
|
名称 |
类型 | 描述 |
| ActionDescriptor | ActionDescriptor | 动作方法的描述 |
| Result | ActionResult | 动作方法的结果,设置属性非空值,过滤器可以取消请求 |
|
名称 |
类型 | 描述 |
| ActionDescriptor | ActionDescriptor | 动作方法的描述 |
| Canceled | Bool | 如果该动作被另一个过滤器取消,则返回true |
| Exception | Exception | 返回由另一个过滤器或动作方法抛出的异常 |
| ExceptionHandled | Bool | 如果异常被处理返回true |
| Result | ActionResult |
namespace System.Web.Mvc{
// 摘要:定义结果筛选器所需的方法。
public interface IResultFilter{
// 摘要:在操作结果执行后调用。
// 参数:filterContext:
// 筛选器上下文。
void OnResultExecuted(ResultExecutedContext filterContext);
// 摘要:在操作结果执行之前调用。
// 参数:filterContext:
// 筛选器上下文。
void OnResultExecuting(ResultExecutingContext filterContext);
}
}
namespace System.Web.Mvc{
// 摘要:表示筛选器特性的基类。
public abstract class ActionFilterAttribute : FilterAttribute, IActionFilter, IResultFilter{
// 摘要:在执行操作方法后由 ASP.NET MVC 框架调用。
// 参数:filterContext:
// 筛选器上下文。
public virtual void OnActionExecuted(ActionExecutedContext filterContext);
// 摘要:在执行操作方法之前由 ASP.NET MVC 框架调用。
// 参数:filterContext:
// 筛选器上下文。
public virtual void OnActionExecuting(ActionExecutingContext filterContext);
// 摘要:在执行操作结果后由 ASP.NET MVC 框架调用。
// 参数:filterContext:
// 筛选器上下文。
public virtual void OnResultExecuted(ResultExecutedContext filterContext);
// 摘要:在执行操作结果之前由 ASP.NET MVC 框架调用。
// 参数:filterContext:
// 筛选器上下文。
public virtual void OnResultExecuting(ResultExecutingContext filterContext);
}
}
public class ProfileAllAttribute: ActionFilterAttribute{
private Stopwatch timer;
public override void OnActionExecuting(ActionExecutingContext filterContext){
timer = Stopwatch.StartNew();
}
public override void OnActionExecuted(ActionExecutedContext filterContext){
timer.Stop();
filterContext.HttpContext.Response.Write(
string.Format("<div>Total elapsed time:{0}</div>", timer.Elapsed.TotalSeconds));
}
}
public class HomeController : Controller{
[ProfileAll]
public ActionResult Index(){ return View();}
}
namespace System.Web.Mvc
{
// 摘要:表示操作和结果筛选器特性的基类。
public abstract class FilterAttribute : Attribute, IMvcFilter{
// 摘要: 获取或设置一个值,该值指示是否可指定筛选器特性的多个实例。
// 返回结果:如果可指定筛选器特性的多个实例,则为 true;否则为 false。
public bool AllowMultiple { get; }
// 摘要: 获取或者设置执行操作筛选器的顺序。
// 返回结果:执行操作筛选器的顺序。
public int Order { get; set; }
}
}
|
过滤器 |
描述 |
| RequireHttps | 强迫Action使用Https协议 |
| OutputCache | 缓存一个Action的 |
| ValidateInputand ValidationAntiForgeryToken | 与安全性有关的授权过滤器 |
| AsyncTimeout NoAsyncTimeout | 用户异步控制器 |
| ChildActionOnlyAttribute | 一个支持Html.action和Html.RenderAction辅助器方法的过滤器 |
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有