IE10 вводит токен в .NET MVC-ссылки
У меня есть работающее приложение .NET MVC, но при обращении к IE10 в Windows 8 исходный код браузера показывает, что все динамически созданные URL-адреса, например. с Url.Action("Index", "Home")
записываются как:
/(F (usb6gVWyFnXevozQyFvVxVdbsN0uM9kZ5wNu9gT9pWBINGuodOdzLKkIQzfhqy3UhnCLyXf78LugXZO2UPYfMbNzSJJawmbqUBL56TjKpXgWpiMdVAjB1T3YcPlGhZePwFd6C9P_f_Y89KiDnWcA9EfR1m0ud3IcBYTW8OwZxOMTd8bxt5hM8mgXVN6OSdoo3IMwRA2))/ Главная /Index
вместо:
/Home/Index
Если мы напишем ссылку со статическим HTML:
<a href="/Home/Index">[linktext]</a>
IE10 перенаправляет страницу входа.
Проблема заключается в том, чтобы временно покинуть сайт, чтобы перейти на сайт-партнер, у которого есть ссылка на первый сайт. Так как введенный код отсутствует, возвращаемый URL-адрес больше недействителен и перенаправляется на вход.
Кто-нибудь знает, зачем этот код вводится (проблема с Framework или IE10?)
Ответы
Ответ 1
Этот код является частью функции ASP.NET cookieless session. Вы можете отключить его в разделе web.config <configuration><system.web>
с помощью
<sessionState cookieless="false" />
Или с помощью:
<forms cookieless="UseCookies" />
Я не знаю, почему IE10 это делает. Вероятно, вы могли бы добавить файл браузера в app_browsers с обновленной информацией IE10, чтобы сказать, что он поддерживает файлы cookie. Или, возможно, у вас отключены файлы cookie?
Ответ 2
В файлах определения браузера, которые поставляются с .NET 2.0 и .NET 4, есть ошибка, а именно, что они содержат определения для определенного диапазона версий браузера. Но версии для некоторых браузеров (например, IE 10) уже не входят в эти диапазоны. Поэтому ASP.NET рассматривает их как неизвестные браузеры и по умолчанию использует определение нижестоящего уровня, которое имеет определенные неудобства, например, что оно не поддерживает такие функции, как JavaScript и/или файлы cookie.
Корпорация Майкрософт выпустила исправления, исправляющие проблему.
(Источник)
Ответ 3
Добавьте файл web.config в cookieless="UseCookies"
следующим образом:
<authentication mode="Forms">
<forms loginUrl="~/YourLoginUrl" timeout="2880" **cookieless="UseCookies"** />
</authentication>
Это решение цитируется по этой ссылке;
fooobar.com/info/62079/...