我需要重寫由無法更改的DLL提供的網頁上的域名。 我認爲如果在頁面上發生Response.Flush之前發生了像OnFlush這樣的事件,我可以在頁面顯示之前完成所有事件。有沒有辦法在ASP中做到這一點?Response.Flush - 傳統ASP中的OnFlush事件?
感謝您的幫助。
P.S:事情是Script_OnFlush在這個APACHE擴展:http://www.apache-asp.org/events.html
繼我創建了從Stream類繼承的類尼克的建議。 Response.Filter使用這個類來處理HTML內容...
通過重寫Write方法,我設法重寫了站點上的域名。
public override void Write(byte[] buffer, int offset, int count)
{
byte [ ] data = new byte [ count ];
Buffer.BlockCopy (buffer, offset, data, 0, count);
string myHTML = ASCIIEncoding.ASCII.GetString(data);
string convertedHTML = myHTML.Replace("http://www.previousdomain.com", "http://www.currentdomain.com");
data = ASCIIEncoding.ASCII.GetBytes(convertedHTML);
_sink.Write (data, 0, count);
}
謝謝尼克!
經典或.NET ASP? – AnthonyWJones 2009-09-08 07:37:51
經典,我很害怕。 :( – 2009-09-08 07:53:35
這些DLL是從ASP頁面調用的ISAPI擴展,過濾器或COM組件? – AnthonyWJones 2009-09-08 13:47:12