Как предотвратить междоменные проблемы с помощью прокси в IIS? - PullRequest
2 голосов
/ 23 июня 2009

У меня есть сайт, написанный на Delphi, который должен получать данные из веб-службы .NET. Чтобы использовать веб-службу, я сначала присоединяюсь к веб-сайту .NET, который содержит мастер, который должен заполнить конечный пользователь, который, в свою очередь, затем вызывает веб-службу для заполнения раскрывающихся списков AJAX и вернуть данные в вызывающее веб-приложение Delphi.

Итак, чтобы быть ясным ...

  1. Веб-сайт Delphi открывает веб-сайт .NET
  2. Веб-сайт .NET заполняет раскрывающиеся списки AJAX из веб-службы .NET
  3. Когда пользователь нажимает кнопку "Отправить" в веб-мастере .NET, он вызывает веб-сервис .NET для получения данных и возвращается на веб-сайт Delphi.

Однако вызов веб-службы .NET для заполнения раскрывающихся списков приводит к тому, что IE6 (и даже все браузеры) воспринимают это как междоменную угрозу безопасности, и я получаю сообщение «Эта страница имеет доступ к информации, которая не находится под ее контролем. создает угрозу безопасности ... "ошибка.

Код для раскрывающихся списков следующий (на случай, если это поможет) ...

В файле .apsx

<asp:DropDownList ID="DocCategoryDropDown" 
              runat="server" 
              OnSelectedIndexChanged="DocCategoryDropDown_SelectedIndexChanged"
              AutoPostBack="true">
</asp:DropDownList>
<ajaxToolkit:CascadingDropDown ID="DocCategoryCascadingDropDown" 
                           runat="server" 
                           TargetControlID="DocCategoryDropDown"
                           LoadingText="[Loading...]" 
                           Category="CategoryId" 
                           UseContextKey="True" 
                           ContextKey="NY"
                           PromptText="Select a Category" 
                           ServiceMethod="GetDocCategory" 
                           ServicePath="tba">
</ajaxToolkit:CascadingDropDown>

в файле C #

DocCategoryCascadingDropDown.ServicePath = path;

Если путь находится на том же сервере, что и веб-сайт, он работает нормально, но если путь не указан, я получаю предупреждение, поэтому это должно быть проблемой безопасности между доменами.

У меня раньше были похожие проблемы с веб-службами Java, и я решил эту проблему, используя прокси-серверы на Apache, чтобы веб-сайт, на котором размещен мастер и веб-служба, существовал в одном домене и поэтому прекратил ошибки.

Может кто-нибудь сказать мне, как я могу сделать то же самое в IIS, пожалуйста?

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

Большое спасибо заранее.

1 Ответ

3 голосов
/ 24 июня 2009

Хорошо, после долгих поисков (и скрежета зубов) я нашел этот сайт, который хорошо объясняет решение.

http://dotnetslackers.com/columns/ajax/MashitUpwithASPNETAJAX.aspx

Просто показывает, как важно знать, как задать правильный вопрос:)

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