Re: Modifying page output using Session data?

From: Hugo Wetterberg (hugo_at_wetterberg.com)
Date: 03/27/04


Date: Sat, 27 Mar 2004 18:27:16 +0100

One solution is to override the Render method and pass a html-writer
based on a memory stream to the base.Render method. Then you only have
to read the memory stream and replace whatever you want, no problems
with accessing the session either.

protected override void Render(HtmlTextWriter writer)
{
        MemoryStream mem=new MemoryStream();
        StreamWriter w=new StreamWriter(mem);
        HtmlTextWriter htmlw=new HtmlTextWriter(w);

        base.Render (htmlw);
        htmlw.Flush();

        mem.Position=0;
        TextReader reader=new StreamReader(mem);
        string output=reader.ReadToEnd();

writer.Write(output.Replace("${user}",(string)Session["username"]));
}

        Cheers
        Hugo

On Sat, 27 Mar 2004 11:20:02 -0500, Al Cohen
<amc79@no.junk.please.cornell.edu> wrote:

>I'm attempting to build a templating engine that will substitute the
>values of session variables for tags in a page before the page gets sent
>to the client. For example, the contents of Session["UserName"] would
>replace each instance of ${UserName} in the page just before the page is
>returned.
>
>In principle, this should be easy to do by hooking into one of the
>HttpApplication events that occurs after the request handler runs, but
>I'm having trouble figuring out exactly how. The problem is that to do
>this, I need to satisfy two conditions:
>1. I must have access to the Session
>2. I must be able to manipulate (i.e., random search, delete, and write)
>the page contents.
>
>It looks like I can only manipulate the page contents in a filter
>attached to HttpResponse.Response; otherwise, I can only append to the
>Response. (Is this true?)
>
>If I can only manipulate the page in a filter, that would be OK, as long
>as the filter has access to the Session. However, a little
>experimenting indicates that the Session is gone after
>PostRequestHandlerExecute occurs, which is before the response filters
>are executed.
>
>So, I seem to be unable to manipulate the entire page and read a session
>at the same time.
>
>Any suggestions would be VERY appreciated!
>
>Thanks,
>
>Al Cohen
>www.alcohen.com



Relevant Pages

  • Re: Modifying page output using Session data?
    ... > with accessing the session either. ... I must be able to manipulate ... >>If I can only manipulate the page in a filter, that would be OK, as long ... which is before the response filters ...
    (microsoft.public.dotnet.framework.aspnet)
  • Modifying page output using Session data?
    ... I must have access to the Session ... I must be able to manipulate ... If I can only manipulate the page in a filter, that would be OK, as long ... which is before the response filters ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Problem with Filters in web application
    ... But if the unsecured page would manipulate the ... session the filter would not pass since the object is not in the ... Prev by Date: ...
    (comp.lang.java.programmer)
  • [ANN] Java Web Parts 1.0 (GA) is now available
    ... The Java Web Parts (JWP) team is proud to announce that new year's day ... Javascript compressor, a request recorder, a cross-site scripting ... filter, a compression filter and an IP access control filter ... Listener - Context and Session listeners for various occassions ...
    (comp.lang.java.programmer)
  • Re: Better way? (DataView question)
    ... DataSet that's in session memory and create a filter? ... Create DataView from DataSet in session memory ... Dim ds As New DataSet ...
    (microsoft.public.dotnet.framework.aspnet)