Str*_*der 7 asp.net asp.net-mvc httpmodule asp.net-mvc-3 asp.net-mvc-4
我需要为进入我的应用程序的每个请求检查一些内容(Cookies).
在ASP.NET中我们使用HttpModule来完成这项任务,这个问题应该在MVC中使用什么?一些全局过滤器,或者我也可以使用HttpModuler,在MVC和常规ASP.NET之间的Request PipeLine有什么区别吗?
arm*_*oon 11
MVC是ASP.NET的抽象,因此它们的"钩子"实际上取决于您想要注入逻辑的级别.动作过滤器将允许您挂钩MVC特定事件:
OnActionExecuting - 在执行控制器操作之前调用此方法. OnActionExecuted - 执行控制器操作后调用此方法. OnResultExecuting - 在执行控制器操作结果之前调用此方法.OnResultExecuted - 执行控制器操作结果后调用此方法.而HttpModule只允许您挂钩到ASP.NET(构建MVC)特定事件:
BeginRequest - 请求已经开始.如果您需要在请求开始时执行某些操作(例如,在每个页面顶部显示广告横幅),请同步此事件.AuthenticateRequest - 如果要插入自己的自定义身份验证方案(例如,针对数据库查找用户以验证密码),请构建一个同步此事件的模块,并以您希望的方式对用户进行身份验证.AuthorizeRequest - 此事件在内部用于实现授权机制(例如,将访问控制列表(ACL)存储在数据库中而不是文件系统中).虽然您可以覆盖此事件,但没有太多合理的理由.PreRequestHandlerExecute - 此事件在HTTP处理程序执行之前发生.PostRequestHandlerExecute - 执行HTTP处理程序后发生此事件.EndRequest - 请求已完成.您可能希望构建一个调试模块,该模块在整个请求中收集信息,然后将信息写入页面.所以这取决于您何时需要挂钩您的活动以及您需要哪些活动.
| 归档时间: |
|
| 查看次数: |
4690 次 |
| 最近记录: |