Визуализировать страницу внутри HttpModule? - PullRequest
2 голосов
/ 14 ноября 2009

Кто-нибудь получил представление о том, как отобразить страницу aspx внутри HttpModule и направить ее обратно в браузер?

Ответы [ 3 ]

5 голосов
/ 14 ноября 2009

Вы можете сделать что-то вроде этого:

Type page_type = BuildManager.GetCompiledType ("~/page.aspx");
Page page = (Page) Activator.CreateInstance (page_type);
page.ProcessRequest (Context);
3 голосов
/ 14 ноября 2009
public void ProcessRequest(HttpContext context)
{
    using (var writer = new StringWriter())
    {
        context.Server.Execute("default.aspx", writer);
        context.Response.ContentType = "text/html";
        context.Response.Write(writer.GetStringBuilder().ToString());
    }
}
2 голосов
/ 15 ноября 2009

Лучшим способом, вероятно, является использование перезаписи URL-адреса для перенаправления стандартного шага обработки обработчика на страницу, которую вы хотите отобразить. Что-то вроде:

context.RewritePath("yourpage.aspx", false);

Вы можете запустить это из обработчика событий BeginRequest.

...