MVC过滤器技术范本.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MVC过滤器详解 APS.NET MVC中(以下简称“MVC”)的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理。这时候就用到了过滤器。   MVC支持的过滤器类型有四种,分别是:Authorization(授权),Action(行为),Result(结果)和Exception(异常)。如下表, 过滤器类型 接口 描述 Authorization IAuthorizationFilter 此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法 Exception IExceptionFilter 用于指定一个行为,这个被指定的行为处理某个行为方法或某个控制器里面抛出的异常 Action IActionFilter 用于进入行为之前或之后的处理 Result IResultFilter 用于返回结果的之前或之后的处理   但是默认实现它们的过滤器只有三种,分别是Authorize(授权),ActionFilter,HandleError(错误处理);各种信息如下表所示 过滤器 类名 实现接口 描述 ActionFilter AuthorizeAttribute IAuthorizationFilter 此类型(或过滤器)用于限制进入控制器或控制器的某个行为方法 HandleError HandleErrorAttribute IExceptionFilter 用于指定一个行为,这个被指定的行为处理某个行为方法或某个控制器里面抛出的异常 自定义 ActionFilterAttribute IActionFilter和IResultFilter 用于进入行为之前或之后的处理或返回结果的之前或之后的处理   下面介绍的过滤器中,除了上面这几种外,还多加一种过滤器OutputCache ? 1?????????? 授权过滤器Authorize ? 1.1????????? 默认Authorize使用   现在在网上无论是要求身份验证的地方多得是,发邮件,买东西,有时候就算吐个槽都要提示登录的。这里的某些操作,就是要经过验证授权才被允许。在MVC中可以利用Authorize来实现。例如一个简单的修改密码操作 [Authorize] public ActionResult ChangePassword() { return View(); } 它需要用户通过了授权才能进入到这个行为方法里面,否则硬去请求那个页面的话,只会得到这个结果 如果要通过验证,通过调用FormsAuthentication.SetAuthCookie方法来获得授权,登陆的页面如下 @model FilterTest.Models.LogInModel @{ Layout = null; } !DOCTYPE html html head titleLogin/title /head body div @using( Html.BeginForm()){ div ID:@Html.TextBoxFor(m=m.UserName) br / Password:@Html.PasswordFor(m = m.Password) br / input type=submit value=login / /div } /div /body /html 行为方法如下 [HttpPost]//这里用了谓词过滤器,只处理POST的请求 public ActionResult Login(LogInModel login) { if (login.UserName == admin login.Password == 123456) { FormsAuthentication.SetAuthCookie(login.UserName, false); return Redirect(/Customer/ChangePassword); } return View(); } 当然有登录也要有注销,因为注销是在登陆之后发生的,没登陆成功也就没有注销,所以注销的行为方法也要加上Authorize过滤器,注销

文档评论(0)

贪玩蓝月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档