2010-06-21 2 views
1

Я работаю над системой интрасети (.NET 3.5); основные страницы подаются со стандартного сервера ASP.NET. Я хотел бы использовать Ajax на этих страницах для обращения к службе WCF, запущенной на другой машине, для извлечения данных, выполнения операций CRUD - обычного материала Ajax.JSONP и обмен файлами с одного сервера на другой?

Проблема, которую я пытаюсь решить: можно взять файлы cookie, которые были установлены сервером ASP.NET, и включить их в запросы к службе WCF? Если да, то как?

Я понимаю, что JSONP обходит ограничения XSS путем «обертывания» запроса Ajax в стандартном сценарии < src = «MyAjaxCall? SomeData = SomeValue» > тег. Имея это в виду, казалось бы, я нахожусь во власти браузера относительно того, какие файлы cookie (если есть) будут включены в MyAjaxCall. Поскольку файлы cookie происходят из сервера ASP.NET, браузер, вероятно, не включит их в вызов WCF.

Поскольку это приложение интрасети, я не могу полагаться на подстановочный код домена (* .mydomain.com), чтобы убедиться, что куки-файлы разделены между несколькими компьютерами - клиент может получить доступ к машинам по простому имени сети или даже IP-адрес напрямую.

редактировать: принимая ответ Джулиана, так как с помощью JS вручную захватить полезную нагрузку печенья и варенья его на URL кажется, единственным способом работать вокруг ограничения (Тхо он чувствует себя несколько безвкусным :)

ответ

1

Вы совершенно правы, полагая, что у вас будут проблемы с файлами cookie.

Единственным обходным путем является передача значений, представляющих интерес, в строку запроса запроса JSONP. Это означает, что вам придется проверять файлы cookie на стороне клиента, извлекать нужные вам данные и затем добавлять их к URL-адресу «вручную».

Смежные вопросы