2013-11-21 3 views
0

Мой сайт MVC использует код antiforgeryToken, который хорошо работает в chrome, firefox. Тем не менее, в IE10 я заметил, что он дает мне ошибку: требуется анти-подделки cookie «__RequestVerificationToken» нетпереадресация/маскирование домена с ошибкой токена анти-подделки ASP MVC

Определенно проблема с файлами cookie, когда я разрешаю все файлы cookie, он отлично работает. (т. е. самые низкие параметры конфиденциальности) Однако я также заметил, что когда я иду в GoDaddy и снимаю маскирование переадресации домена (но оставляю переадресацию домена), он также отлично работает.

Есть ли способ заставить это работать с маскировкой? (Маскировка - это опция, которая позволяет перенаправлять домен, скрывая не-доменное имя. Я делаю это, потому что я использую сайты Azure и предпочитаю, чтобы мои пользователи видели мое фактическое доменное имя, а не xxx.azurewebsites.net)

Спасибо за любую помощь здесь!

ответ

0

Манипуляция переадресацией доменов выполняется путем размещения вашего реального URL-адреса внутри фрейма. В этом случае ваш реальный контент веб-сайта поступает из другого домена, чем домен главной страницы. Таким образом, любые файлы cookie, которые ваш сайт пытается установить, будут интерпретироваться как «сторонние файлы cookie» и будут заблокированы любым браузером, установленным для блокировки таких файлов cookie (включая, по-видимому, IE10 с настройками по умолчанию).

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

Я думаю, что ваши варианты в этом случае не должны содержать файлы cookie (например, не использовать функции CSRF, предоставляемые ASP.NET MVC), или переместить ваш сайт на хост, который позволяет вам напрямую обслуживать ваш контент на реальном URL (так что вам не нужно использовать технику маскирования godaddy). Последнее, вероятно, является лучшим долгосрочным решением.

+0

Спасибо за помощь. Но должны быть другие сайты, созданные с использованием asp.net и azure, которые имеют настоящие доменные имена. (т. е. не mysite.azurewebsites.net). – user3015582

+0

Да, azure поддерживает прямое назначение реальных доменных имен (я использую azure для www.ewal.net и trendweight.com), просто не на «свободном» уровне. Вы должны быть как минимум на «общем» уровне. Настройки для настройки имени домена находятся на вкладке конфигурации, и есть пошаговые инструкции для того, что вы должны делать в GoDaddy, чтобы заставить его работать. –