2009-11-16 27 views
5

Sitemizde ASPX ve HTML dosyasının hudrends'ları var ve her dosyanın sonunda küçük bir JavaScript enjekte etmek istiyoruz. Bunu kullanarak ve HttpModule (yeni bir şey öğrenmeye çalışarak) yapmak isteseydim, bunu yapar mı - göze çarpan sorunlar var mı?ASP.NET: Tüm Yanıt akışlarına içerik enjekte etme

public void Init(HttpApplication context) 
{ 
    context.BeginRequest += new EventHandler(context_BeginRequest); 
} 

void context_BeginRequest(object sender, EventArgs e) 
{ 
    var context = HttpContext.Current; 

    if (!isAspxOrHtmlFile(context.Request.Path) 
    { 
     return; 
    } 

    var javascript = ... 

    using (var writer = new StringWriter()) 
    { 
     context.Server.Execute(context.Request.Path, writer); 
     context.Response.ContentType = "text/html"; 
     context.Response.Write(writer.GetStringBuilder().ToString() + javascript); 
    } 

    context.Response.End(); 
} 

cevap

4

Muhtemelen bunu kolay yolu, doğru sadece eski SGK gibi dosyaları dahil, web sitenizin ana sayfasında dosyasına statik özel kullanıcı kontrolleri kullanarak etmektir biliyor musunuz?

HttpModule hakkında, HTML olmayan içeriğin farkında olmalısınız, ancak bunu zaten isAspxOrHtmlFile() kullanarak kaldırmışsınız demektir. Bana iyi görünüyor.

+1

Evet, bunun için daha iyi bir yol olduğundan eminim, bunu HttpModules ile tanışmak için örnek olarak kullanıyorum. Teşekkürler :) – JamesBrownIsDead

İlgili konular