Отправка формы входа в приложение ASP.NET MVC 2 из дочернего приложения MVC 3 - токен защиты от подделки недействителен - PullRequest
0 голосов
/ 22 марта 2011

У меня есть родительское приложение ASP.NET MVC 2 по адресу / localhost / app (работающее в IIS на моем компьютере разработчика).Я могу войти в этот штраф из / localhost / app / Account / LogOn .У меня есть дочернее приложение (MVC 3) в / localhost / app / childapp .У обоих приложений web.config один и тот же machineKey (validationKey / decryptionKey), и если я вхожу в систему через родительское приложение, дочернее приложение корректно аутентифицируется с помощью файла cookie, установленного родительским приложением.

Я хочу, чтобыиметь возможность перейти на страницу входа дочернего приложения / localhost / app / childapp / Account / LogOn и опубликовать эту страницу в контроллере учетной записи входа родительского приложения.Однако, когда я пытаюсь это сделать, родительское приложение выдает мне сообщение об ошибке сервера: «Требуемый токен защиты от подделки не был предоставлен или был недействительным».Учитывая, что у меня есть RequestVerificationToken и в cookie, и в посте, он должен быть последним (недействительным или не предоставленным).

Это просто маркер защиты от подделки, выполняющий свою функцию, и я не могу использовать этот токен и публиковать его в разных приложениях, несмотря на совместное использование файла cookie аутентификации?Или есть способ заставить это работать?Большое спасибо!

1 Ответ

0 голосов
/ 22 марта 2011

Вы можете попытаться указать домен и путь при создании токена защиты от подделки, который позволит автоматически отправлять cookie в дочернее приложение:

@Html.AntiForgeryToken(null, "example.com", "/")

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

...