Подтвердить что ты не робот

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?)

4b9b3361

Ответ 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/...