2010-03-16 5 views
1

Мой сайт состоит из одной страницы aspx и нескольких ресурсов, таких как изображения, js и таблицы стилей. Когда страница открыта, она генерирует Asp.Net_SessionId, которая используется при получении других ресурсов, но затем ресурс сбрасывает ASP.NET_SessionId с ответом. Что можно сделать по этому поводу?Сессия cookie сбрасывается ASP.NET

Default.aspx: 
Request: 
Cookie ASP.NET_SessionId= 

Response 
Set-Cookie ASP.NET_SessionId=pf31rzumimjurdmdhc1qgq45; expires=Tue, 16-Mar-2010 14:21:43 GMT; path=/; HttpOnly 

Default.css: 
Request: 
Cookie ASP.NET_SessionId=pf31rzumimjurdmdhc1qgq45 

Response: 
Set-Cookie ASP.NET_SessionId=; expires=Tue, 16-Mar-2010 14:21:44 GMT; path=/ 

Это сводит меня с ума. Это происходит только тогда, когда я устанавливаю значение sessionCookie.Expire. Кроме того, иногда это хорошо, как описано выше :(

ответ

4

Вы сохраняете что-либо в объекте Session? Если нет, ASP.NET не будет сохранять ваш сеанс и использовать новый идентификатор сеанса для каждого запроса. хранить некоторое фиктивное значение, например

Session("Dummy") = 1 

перед обращением к идентификатору сеанса.

+0

Где я должен использовать этот код? Я не могу поместить его в ASPX, потому что ответ из файла CSS удаляет сеанс. –

0

В global.asax

private void Session_Start(Object sender, EventArgs e) 
{ 
    Session.Add("blerg",1); 
} 

я не смог тестировать. Кроме того, на IIS6 статические файлы по умолчанию обслуживаются напрямую, не идя, хотя ASPAP-фильтр isapi, поэтому, если вы не используете сопоставление подстановочных знаков, это все напрасно - у вас не будет сеанса для статический файл, если он не проходит через конвейер ASP.NET. Cassini/VS Dev Server отправляет все статические файлы через конвейер ASP.NET. Я не знаю, что такое поведение по умолчанию для статических файлов в IIS7.

+0

Я предполагаю, что статические файлы обслуживаются напрямую IIS по умолчанию. –

+0

Реальный ответ для IIS 7 зависит от режима конвейера: http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/ Не нужно угадывать, когда Google знает об этом. – MatthewMartin

Смежные вопросы