post icon

How To access to Session from custom HTTP Handler

Se in ASP.Net si crea un HttpHandler personalizzato solo mediante l’implementazione dell’interfaccia IHttpHandler ci si trova di fronte ad una strana limitazione: il tuo codice HttpHandler non sarà in grado di accedere agli oggetti in Sessione, ad esempio, nel metodo ProcessRequest.
Questo è dovuto al fatto che, al fine di accedere agli oggetti in Sessione è necessario implementare un’altra interfaccia: System.Web.SessionState.IRequiresSessionState.
Questa ulteriore interfaccia funge solo da un marcatore di interfaccia e non impone di aggiungere ulteriori metodi alla vostra classe; ‘dice’ solo al runtime di ASP.NET che è necessario per accedere alla Sessione.

Ecco il codice snippet: 

 

public class MyCustomHTTPHandler: IHttpHandler, IReadOnlySessionState { public bool IsReusable { get{return (false);} } public void ProcessRequest(System.Web.HttpContext context) { if (context.Session == null) { context.Response.ContentType = "text/plain"; context.Response.Write("Impossibile recuperare i dati da Sessione."); } else { context.Response.ContentType = "text/plain"; context.Response.Write(context.Session["MY_SESSION_PARAM_STRING"].ToString()); } } }

 

25 giugno 2009 @ 13:45

No comments yet.

Leave a comment

Leave a Reply

Are you human? Time limit is exhausted. Please reload CAPTCHA.