ASP.NET: Session State and Response.Redirect

May 11, 2007 17:29


Проблема:

После успешной авторизации данные сессии сбрасываются.

Подробнее:

При успешном логине пользователя необходимо перенаправить на страницу по умолчанию. Перенаправление делается с помощью Response.Redirect("page.aspx").

Причина:

ASP.NET после посылки заголовка 302 (редирект) вызывает Response.End(), чем заканчивает посылку ответа. Вследствие чего не передаются данные сессии (SessionID).

Решение:

Необходимо либо использовать метод FormsAuthentication.RedirectFromLoginPage(...) или использовать перегруженную версию Response.Redirect(string url, bool endResponse), указав в последнем параметре false.

Найти решение мне помог google и BLeroy.

P.S. Насколько я понимаю, проблема актуальна для ASP, ASP.NET 1.1 и ASP.NET 2.0.

it, программизм, asp.net

Previous post Next post
Up