Subdominios, dominios y sesiones

Para aquellos a los que manejáis sesiones entre dominios y subdominios, os habréis encontrado con el problema típico de las sesiones en .NET (o en cualquier otro lenguaje): la cookie de la sesión utiliza el dominio o subdominio en el que se crea.

Esto provoca que por ejemplo prueba.midominio.com y www.dominio.com tengan dominios diferentes en sus cookies y no puedan "hablarse" entre sí.

Si por ejemplo, para hacer búsquedas enviara a un usuario logado en www.dominio.com a search.midominio.com, perdería la sesión.

Afortunadamente le podemos asignar un dominio a las cookies donde centralizar y los colegas de Redmond han pensado en ello para .NET.

Tenemos que indicarle bajo qué dominio se van a crear las sesiones así:

Response.Cookies["ASP.NET_SessionId"].Value = Session.SessionID;
Response.Cookies["ASP.NET_SessionId"].Domain = "midominio.com";

Escrito el 11 ene 2009
comments powered by Disqus

« Colecciones en .NET 2 (mención especial NameValueCollection) - DropDownlist and InitialValue »