2012-02-20 6 views
0

У меня есть страница ASP.NET, размещенная на IIS6, работающая на сервере Windows 2008. На странице есть два iframe, оба вызывающих страницы в одном приложении.сеанс потерян в iframe с чувствительным к регистру URL (IE8)

При просмотре в браузере (IE8, режим совместимости) сеанс теряется в iFrames.

IIS настроен с виртуальным каталогом «App», поэтому доступ к сайту осуществляется через http://localhost/App.

Проблема возникает, если вы набрали в браузере http://localhost/app - обратите внимание на смену корпуса.

Насколько я знаю, URL-адреса всегда чувствительны к регистру, но в этом случае это явно не так. После некоторого тестирования выясняется, что важным фактором является то, что URL-адрес, введенный в браузер, должен иметь точно такой же корпус, как и URL-адрес в iframe. Или, по крайней мере, оболочку виртуального каталога между двумя URL-адресами.

Таким образом, простое исправление заключается в том, чтобы вы всегда использовали точно такой же почтовый ящик в браузере, что и в виртуальном каталоге, но это немного сложно с пользователями.

Я думал о переписывании URL-адреса и выполнении некоторых манипуляций с строкой, чтобы сделать URL-адрес iFrame совпадающим с URL-адресом браузера, но он кажется немного взломанным и потенциально ненадежным.

Кто-нибудь еще испытал это или есть просто IE config, который я могу изменить?

Спасибо,

ответ

1

Urls являются чувствительны к регистру. Это IIS & ASP.NET, которые не чувствительны к регистру при обработке URL-адресов запросов, но чувствительность к регистру, которую вы видите для путей cookie, должна быть верна для любого используемого вами браузера. Это не то, что вы должны изменить.

Обходным решением было бы перенаправить запросы с неверно обведенным URL-адресом на правильный. Вы можете написать IHttpModule для этого, или, если вы используете IIS7, используйте дополнительный модуль маршрутизации запросов приложений.

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