离开服务器之前有没有办法获取访问权限并更改为Page?

时间:2010-09-11 18:08:08

标签: asp.net httphandler global-asax advertising

我想在从服务器发送时更改页面内容,因为我需要在广告持有者的html元素中添加一些广告。

protected void Application_PreSendRequestContent(object sender, EventArgs e)这很好但我无法访问HttpContext。我应该,我不知道:)

但是在这种方法中: protected void Application_EndRequest(object sender, EventArgs e)我可以获得HttpContext,但我找不到服务器响应。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可能希望实现HttpModule而不是global.asax。您可以在MSDN中找到操作响应的模块示例:Walkthrough: Creating and Registering a Custom HTTP Module

有关其他信息,请参阅此页面(例如,为什么使用HttpModule而不是global.asax):HTTP Handlers and HTTP Modules Overview


回答你的评论:以下是使用模块而不是global.asax的一些原因(有关更多信息,请查看上面链接的文档):

  • 您可以在应用程序的Global.asax文件中实现模块的大部分功能[...]但是,模块比Global.asax文件有优势,因为它们是封装的,可以创建一次并用于许多不同的应用程序。
  • 在IIS 7.0中,集成管道允许托管模块为所有请求订阅管道通知,而不仅仅是对ASP.NET资源的请求。
  • 您可以通过web.config启用/禁用模块(不接触任何代码)

每当您必须创建依赖于应用程序事件的代码时,以及满足以下条件时,您应该使用模块:

  • 您想在其他应用程序中重复使用该模块。
  • 您希望避免在Global.asax文件中放入复杂的代码。
  • 该模块适用于管道中的所有请求(仅限IIS 7.0集成模式)。

答案 1 :(得分:0)

  

受保护的虚空   Application_PreSendRequestContent(对象   发件人,EventArgs e)这很好但是   我无法访问HttpContext。   我应该,我不知道:)。

您始终可以使用HttpContext.Current

访问当前请求的HttpContext