MVC过滤器之——自定义过滤器

相信很多使用ASP.NET MVC开发模式的人都有过体会,怎么限制页面只能是授权用户才能访问?具体应该怎么操作呢?这里我用到的是过滤器中的自定义过滤器,规则由自己制定。

自定义授权过滤器可以继承AuthorizeAttribute这个类,这个类里面有两个方法是要重写的

1、bool AuthorizeCore(HttpContextBase httpContext):这里主要是授权验证的逻辑处理,返回true的则是通过授权,返回了false则不是。
2、void HandleUnauthorizedRequest(AuthorizationContext filterContext):这个方法是处理授权失败的事情。

下面定义一个授权处理器,当请求的时候刚好是偶数分钟的,就通过可以获得授权,反之则不通过。当授权失败的时候,就会跳转到登陆页面了。

pub­lic class MyAuthorizeAttribute:AuthorizeAttribute
{

pro­tect­ed over­ride bool AuthorizeCore(HttpContextBase httpContext)
{
//为偶数分钟时才可访问
return DateTime.Now.Minute % 2 == 0
}

pro­tect­ed over­ride void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{

//失败后跳转到登陆界面
filterContext.HttpContext.Response.Redirect(“/Customer/Login”);
}
}

然后用到一个行为方法上,

[MyAu­tho­rize]
pub­lic Action­Re­sult ShowDetail()
{
return View();
}

这样就完成了一个简单的自定义过滤器了!

当然,过滤器有很多种,我现在讲的只是其中的一种,后面会陆续给大家讲解其他的几种过滤器形式。

为您推荐

发表评论

您的电子邮箱地址不会被公开。