venerdì 3 luglio 2009

ASP.NET : Login page ashx

Salve a tutti, pubblico questo breve post per segnalarvi un piccolo problema capitatomi ma che potrebbe servire ad altri.

Sviluppando una web application in ASP.NET mi è capitato di dover implementare la pagina di login tramite un Handler (un file login.ashx).

Questo perchè l’autenticazione del sito era particolare e non richiedeva interazione con l’utente.

Peccato che, così facendo mi sono accorto di non avere a disposizione la sessione all’interno delle pagine (HttpContext.Current.Session = Nothing tanto per capirci) !!!

Poi, girovagando su internet, mi sono imbattuto in questo vecchio post di Scott Hanselman che si riferisce all’utilizzo della sessione all’interno di HttpHandlers implementando (obbligatoriamente, altrimenti niente sessione) una delle due interfaccie IRequiresSessionSate (per avere controllo completo sulla sessione) o IReadOnlySessionState (per avere la sessione in sola lettura).

Alla fine, morale della favola, se il vostro handler di login (ammesso che ne abbiate bisogno) non implementa la IRequiresSessionState (o la IReadOnlySessionState), vi potete scordare la sessione (come se non venisse mai creata).

Non so se esistono altre soluzioni al problema, ma intanto questa sembra funzionare.

Nessun commento: