Această întrebare este veche, dar m-am gândit că este valoroasă să aveți răspunsul corect aici.
Filip este confuz Java pe partea de server cu client-side Java. Este corect că nu puteți partaja sesiuni între două platforme de pe server, cum ar fi Java (J2EE) și ASP.Net, fără a utiliza o abordare personalizată.
Cu toate acestea, applet-urile sunt client-parte și, prin urmare, ar trebui să poată accesa informațiile despre sesiune ale paginii gazdă. Problema este că ASP.Net 2.0 a adăugat pavilionul HttpOnly pe cookie-urile de sesiune. Acest steguleț împiedică JavaScript și applet-urile Java să acceseze aceste cookie-uri.
Soluționarea este de a dezactiva semnalul HttpOnly pe cookie-urile de sesiune. În timp ce ați putea să o faceți în configurație în versiuni mai noi ale ASP.Net, în versiunile anterioare, soluția a fost de a adăuga următorul cod la fișierul Global.asax:
protected void Application_EndRequest(object sender, EventArgs e)
{
/**
* @note Remove the HttpOnly attribute from session cookies, otherwise the
* Java applet won't have access to the session. This solution taken
* from
* http://blogs.msdn.com/jorman/archive/2006/03/05/session-loss-after-migrating-to-asp-net-2-0.aspx
*
* For more information on the HttpOnly attribute see:
*
* http://msdn.microsoft.com/netframework/programming/breakingchanges/runtime/aspnet.aspx
* http://msdn2.microsoft.com/en-us/library/system.web.httpcookie.httponly.aspx
*/
if (Response.Cookies.Count > 0)
{
foreach (string lName in Response.Cookies.AllKeys)
{
if (lName == FormsAuthentication.FormsCookieName ||
lName.ToLower() == "asp.net_sessionid")
{
Response.Cookies[lName].HttpOnly = false;
}
}
}
}
Rețineți că, chiar și cu această remediere, nu toate combinațiile browser/OS/Java pot accesa cookie-uri. În prezent, investighez o problemă în care cookie-urile de sesiune nu sunt accesibile în Firefox 4.0.1 cu Java 1.6.0_13 pe Windows XP.
Soluția este de a folosi abordarea pe care a sugerat-o Dr. Dad, în care ID-ul sesiunii este trecut la aplet ca parametru și apoi este fie încorporat în adresa URL a solicitării (necesită ca sesiunile URL să fie activate în configurația de pe server), fie trimis ca un modul cookie setat manual.