ФОН:
Я использую два сайта MVC3 для аутентификации в смешанном режиме. Я аутентифицирую человека с помощью Windows-аутентификации в Site1, а затем пересылаю этого человека на Site2, который использует аутентификацию по формам. Мое решение состояло в том, чтобы собрать информацию о пользователе в site1, как только пользователь прошел аутентификацию через windows auth. Затем я записываю эту информацию в файл cookie, а затем перенаправляю на Сайт 2. Сайт 2 затем использует информацию, найденную в файле cookie, для автоматического входа пользователя с использованием Forms Auth. Оба приложения находятся в одном домене и должны иметь возможность обмениваться файлами cookie, однако файл cookie недоступен после перенаправления до тех пор, пока страница не обновится или не перейдет по ссылке на сайте (посещение 2-й страницы).
В любом случае, вот моя проблема. Я создаю cookie, а затем пересылаю пользователя на сайт 2 с сайта 1.
...{cookie created here and added to response}...
HttpContext.Response.Redirect("http://site2.mydomain.com")
Когда я это делаю, в запросе нет файла cookie. Однако, попав на домашнюю страницу Site2, я могу нажать обновить, и тогда мой cookie-файл является частью запроса, и моя аутентификация работает.
Мне нужен мой ответ, чтобы записать куки-файл клиенту, а затем добавить этот куки-файл в запрос, но, похоже, при использовании Response.Redirect это пропускается ...
UPDATE:
Я читал, что в запрос будут включены файлы cookie, только если файл cookie существует до его выполнения. Поскольку я записываю cookie в ответ на запрос, только последующие запросы будут содержать cookie. Итак, мне нужен способ заставить второй запрос, как только они получат мой ответ от первоначального запроса. Итак ...
Пользователь отправляет запрос ---> ответ возвращает с cookie ---> форсирует другой запрос (должен содержать cookie) ---> возвращает запрашиваемую страницу.
Могу ли я сделать это с помощью JavaScript? Может ли javascript проверить ответ на наличие cookie-файла с определенным именем и, если он найден, вызвать перенаправление на текущую страницу?