Этот вопрос старый, но я подумал, что было бы полезно иметь правильный ответ здесь.
Filip запутанная серверная Java с клиентской Java. Он прав, что вы не можете передавать сеансы между двумя серверными платформами, такими как Java (J2EE) и ASP.Net, без использования специального подхода.
Однако апплеты являются клиентскими и поэтому должны иметь доступ к информации о сеансе на главной странице. Проблема в том, что ASP.Net 2.0 добавил флаг HttpOnly в файлы cookie сеанса. Этот флаг запрещает JavaScript и Java-апплеты получать доступ к этим куки.
Обходной способ заключается в отключении флага HttpOnly на сессионных файлах cookie. В то время как вы можете быть в состоянии сделать это в конфигурации в новых версиях ASP.Net, в предыдущих версиях решение было добавить следующий код в ваш 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;
}
}
}
}
Обратите внимание, что даже с этим исправлением , не все комбинации браузера/ОС/Java могут обращаться к файлам cookie. В настоящее время я изучаю проблему с кукисами сеансов, которые не доступны в Firefox 4.0.1 с Java 1.6.0_13 в Windows XP.
Обходной путь заключается в использовании подхода, предложенного доктором Дадом, где идентификатор сеанса передается апплету в качестве параметра, а затем либо внедряется в URL-адрес запроса (для включения URL-адресов в сервер- боковая конфигурация) или отправлено в виде файла cookie, настроенного вручную.