Cette question est ancienne, mais j'ai pensé qu'il était utile d'avoir la bonne réponse ici.
Filip confond le serveur Java avec Java côté client. Il a raison de dire que vous ne pouvez pas partager des sessions entre deux plates-formes côté serveur, telles que Java (J2EE) et ASP.Net sans utiliser une approche personnalisée. Cependant, les applets sont côté client et devraient donc pouvoir accéder aux informations de session de la page hôte. Le problème est que ASP.Net 2.0 a ajouté l'indicateur HttpOnly sur les cookies de session. Cet indicateur empêche JavaScript et les applets Java d'accéder à ces cookies.
La solution de contournement consiste à désactiver le drapeau HttpOnly sur les cookies de session. Alors que vous pourriez être en mesure de le faire dans la configuration dans les versions les plus récentes de ASP.Net, dans les versions précédentes, la solution est d'ajouter le code suivant à votre fichier 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;
}
}
}
}
Notez que même avec ce correctif , toutes les combinaisons navigateur/OS/Java ne peuvent pas accéder aux cookies. Je suis actuellement à la recherche d'un problème avec les cookies de session ne sont pas accessibles sur Firefox 4.0.1 avec Java 1.6.0_13 sur Windows XP. La solution de contournement consiste à utiliser l'approche suggérée par Dr. Dad, où l'ID de session est passé à l'applet en tant que paramètre, puis est soit incorporé dans l'URL de la requête (les sessions URL doivent être activées dans le serveur). configuration latérale) ou envoyé en tant que cookie défini manuellement.