ASP.NET MVC Filters 4种默认过滤器的使用
ASP.NET MVC Filters 是一种强大的机制,它允许开发者在应用程序中插入自定义的逻辑,以便在执行控制器操作之前或之后执行特定的任务。这里有四种默认的过滤器类型:授权(Authorization)、缓存(Caching)、异常处理(Exception Handling)和行动结果(Action Result)。我们将主要讨论授权过滤器 `[Authorize]` 的使用。 在 ASP.NET MVC 中,过滤器通过在方法或控制器级别应用特性来指定。例如,`[Authorize]` 特性用于限制只有经过身份验证的用户才能访问特定的控制器或动作。在提供的例子中,`AuthFiltersController` 中的 `Welcome` 动作被 `[Authorize]` 标记,这意味着只有登录用户才能访问此动作。 当一个未经身份验证的用户尝试访问 `Welcome` 动作时,系统会检查用户的认证状态。如果未通过认证,MVC 框架会按照配置的 `loginUrl` 属性重定向到登录页面。在本例中,`loginUrl` 设置为 `~/Account/LogOn`,这指向 `AccountController` 中的 `LogOn` 动作。 `AccountController` 中有两个 `LogOn` 动作:一个处理 GET 请求,显示登录表单;另一个处理 POST 请求,验证用户凭据。在 POST 方法中,如果用户名和密码匹配,`FormsAuthentication.SetAuthCookie` 会创建一个身份验证cookie,可以是基于会话的或具有指定过期时间的。然后,使用 `RedirectToAction` 将用户重定向到 `Welcome` 动作。 `LogOnViewModel` 是用于封装登录信息的数据模型,包含用户名、密码和是否记住我的选项。通过使用视图模型,我们可以将数据绑定到视图,使表单提交更加简洁。 通过这种方式,ASP.NET MVC 过滤器提供了灵活的身份验证和授权管理。除了 `[Authorize]`,还可以使用其他过滤器,如 `[AllowAnonymous]` 允许匿名访问特定动作,或者自定义过滤器以满足特定需求,如实现更复杂的权限控制。 此外,MVC 过滤器还可以用于缓存响应(如 `[OutputCache]`),处理未预期的异常(如 `[HandleError]`),以及在执行动作之前或之后执行额外的操作(如日志记录或性能追踪)。过滤器的执行顺序取决于它们的类型和排序规则,这允许开发人员控制逻辑的流程。 ASP.NET MVC 过滤器提供了一种优雅的方式来处理应用程序中的通用行为,如授权、缓存和错误处理。通过合理利用这些过滤器,开发者可以创建更加安全、高效且易于维护的Web应用程序。





























剩余25页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于linux的shell的进阶脚本源码.zip
- 工程硕士计算机集成制造技术CIMS试卷答案.doc
- 全国农村电子商务简析及我县发展思考.doc
- MyEclipse安装、配置到部署、运行web项目.doc
- 《计算机辅助制造》上机指导2.doc
- 王雪斌PLC水暖锅炉控制系统改造设计方案.doc
- 计算机网络技术专业(中专)人才培养方案(汉).doc
- 【】数据库系统课程设计指导书.doc
- 计算机的运算基础分析.ppt
- 工程机械领域自动化技术在机电一体化中的应用.docx
- 区块链技术在高校人事管理中的应用分析.docx
- 云计算产业释放巨大红利-未来市场规模达4300亿元.docx
- 团购网站市场发展.doc
- 单片机课程方案设计书—数字温度计.doc
- 计算机组成原理课程综述.doc
- semantic-kitti数据集08激光雷达数据-velodyne.7z.005


