Пользователи IIS7.5 ASP.NET MVC, использующие странные URL: / (F (1xe9eXIxPz) - PullRequest
5 голосов
/ 03 июня 2011

Мы получаем сообщения от небольшого числа пользователей о том, что они сталкиваются с очень странными путями в нашем веб-приложении, в форме:

https://www.example.com/(F(1xe9eXIxPzMALrZu6xd_6LBxDDlJI3lH2lkSvREZZKCfPBH20SF5EcNql6uXvyBVLgiNZshp9vXxaEzuLa5zm8c4ruux6gqu3B90eXGNmKDypu-wKR4OW_GwQctfjCdoxFYcDlLwglfE6rICL3JGkxtq4jgxggiQgJopKZGzLJ_PF2lHY7NqXya8eDshkP9o8QFDad47U54TMsxEwKCki2xPV9d9VxxjmDhNg7aQb38X_OTxHtf9I7AxiccanJf4m0bo0ceEJ70Mv20XYaMSlA2))/some/path

(Примечание: я изменил случайные символы вчто в случае какой-то утечки безопасности, поэтому не пытайтесь декодировать его - хотя, если это может быть полезно, пожалуйста, скажите мне, что я ищу, чтобы я мог сделать это по реальному URL).

Это вызывает 400 в IIS, но IIS не регистрирует его, поэтому я не имею понятия о реферере и т. Д.

Из того, что описывают наши пользователи, это вызвано на этом шаге:*

return Redirect("/some/path");

(который входит в действие контроллера ASP.NET MVC 2).

Сайт, работающий на IIS 7.5 по SSL.

Есть идеи?Я никогда не видел ничего подобного: s

Обновление:

У меня также установлен ISAPI rewrite со следующим .htaccess:

RewriteEngine on
AllowOverride All

# Ensure that all traffic on the live domain is enforced as HTTPS
RewriteCond %{HTTP:Host} (.*)
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (.*)
RewriteRule .? https://%1%2 [R,L]

Ответы [ 2 ]

7 голосов
/ 12 декабря 2012

У нас была точно такая же проблема при просмотре нашего сайта с iPad или планшетов Surface. Проверка подлинности с помощью форм будет как-то переключаться в режим «UseUri».

В соответствии с http://msdn.microsoft.com/en-us/library/1d3t3c61(v=vs.90).aspx режимом по умолчанию для сохранения билета Auth в Forms Authentication является «UseDeviceProfile», который, по-видимому, проверяет, поддерживает ли устройство куки или нет.

Затем он говорит: «Для устройств, которые поддерживают файлы cookie, не предпринимается никаких попыток определить, включена ли поддержка файлов cookie». Возможно, кто-то может помочь мне понять это предложение:)

В любом случае мы решили эту проблему, заставив при проверке подлинности с помощью форм использовать файлы cookie в файле web.config:

<authentication mode="Forms">
  <forms cookieless="UseCookies" loginUrl="~/Login" timeout="2880" />
</authentication>
2 голосов
/ 03 июня 2011

Взгляните на Узнайте, как работает функция ASP.NET без файлов cookie :

В версии 2.0 анонимная идентификация и аутентификация с помощью форм также используют эту функцию. URL теперь может выглядеть так: http://MySite.com/MyWebApplication/(A(XXXX)S(XXXX)F(XXXX))/home.aspx

и далее вниз:

F (XXXX): это билет для проверки подлинности с помощью форм.

Возможно, некоторые из ваших клиентов блокируют файлы cookie.

EDIT: Тем не менее, URL, который вы разместили, кажется чрезмерно длинным. Возможно, по какой-то причине внутреннее устройство MVC или перезапись URL-адреса плохо взаимодействуют с ним.

Вопрос Проблема сеанса без файлов cookie MVC2 при использовании POST может быть несколько связана.

EDIT2: Эта тема также связана с вашей проблемой: http://forums.asp.net/t/1612673.aspx. Автор упоминает, что

некоторые пользователи сообщают об ошибках http 400

потому что очевидно

некоторые пользователи получают токены авторизации форм, которые длиннее обычного, так как они передаются в URL-адресе, что делает длину URL-адреса длиннее, чем IIS примет

Может быть длинный выстрел, но стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...