Events in HttpModule

N

nerd

Hi,

I've easily implemented an HttpModule and use AcquireRequestState to
initialize an object and ReleaseRequestState store to session. Unfortunately
if a Response.Redirect takes place. The ReleaseRequestState does not fire.
No problem, I implement PreSendRequestContent or PreSendRequestHeaders and
now I'm able to fire the event before the Response.Redirect. But Uhoh, I've
got no access to the Session or Context.Items objects???

Please help I'm stumped on when/where to fire an event and still have access
to session and context before firing response.redirect.

Thanks,
John Haynes

jhaynes "at" mckinleycapital "dot" com
 
N

Natty Gur

Hi,

the source parameter holds HttpApplication so you can get context from
it :

public void Init(HttpApplication application)
{
application.BeginRequest += (new
EventHandler(this.Application_BeginRequest));
application.EndRequest += (new
EventHandler(this.Application_EndRequest));
application.PreSendRequestContent += (new EventHandler(this.App));
}

private void App(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
}

anyway you can also use EndRequest.

HTH

Natty Gur[MVP]

blog : http://weblogs.asp.net/ngur
Mobile: +972-(0)58-888377
 
J

John Haynes

Getting to the context or session is not the problem, the problem is they no
longer exist at that point in the HttpPipeline they've already been dumped
from the HttpContext...

They are null nothing do not exists at this point. In debug mode when ">?
HttpContext", Current, Session and a few other elements have already been
dumped. As simple as it may seem I have no access to those elements at that
point. At runtime it produces object not found errors

I'd like to find some actual documentation that details what happens when
the events in the pipeline get bypassed. For example. I was using
ReleaseRequestState but Response.Redirect never fires ReleaseRequestState
and goes right to the next page. Where AcquireRequesState will fire. On a
full page load I can run ReleaseRequestState and have full access to Context
and Session but the peculiar thing is PreSendRequestContent and
PreSendRequestHeader preceed ReleaseRequestState in the HttpPipeline yet I
dont have access to the Context or Session there. I have been unable to find
documentation that supports this.

Thanks for the info though.

John
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top