2009-09-07 1 views
0

변경할 방법이없는 DLL에서 제공하는 웹 페이지의 도메인 이름을 다시 작성해야합니다. Response.Flush가 발생하기 전에 OnFlush와 같은 이벤트가 있으면 페이지가 표시되기 전에 모든 작업을 수행 할 수 있다고 생각했습니다. ASP에서이 작업을 수행 할 수있는 방법이 있습니까?Response.Flush - 고전적인 ASP의 OnFlush 이벤트?

도움 주셔서 감사합니다. 이 APACHE 확장에 Script_OnFlush 같은

P.S : 뭔가 : http://www.apache-asp.org/events.html


내가 스트림 클래스에서 상속하는 클래스를 만든 닉의 제안에 따라. 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); 

    } 

감사합니다. Nick!

+0

Classic 또는 .NET ASP? – AnthonyWJones

+0

클래식, 나는 affraid입니다. : –

+0

이 DLL은 ASP 페이지에서 호출되는 ISAPI 확장, 필터 또는 COM 구성 요소입니까? – AnthonyWJones

답변

1

예 브라우저에 반환되는 모든 콘텐츠의 필터 역할을하는 R esponse.Filter 속성을 오버로드 할 수 있습니다. 의 PostReleaseRequestState에서이 작업을 수행해야합니다.

+0

예 : asp.net이 아닌 asp. – svinto

+0

예 : ASP.NET, if 당신은 IHttpModule 인터페이스를 사용하여 자신 만의 모듈을 만들 수있는 Global.asax를 사용하고 싶지 않습니다. –

+0

Nick에게 감사드립니다. 그러나 고전적인 ASP에서 이것을 어떻게 든 할 필요가 있습니다. –

관련 문제