【问题标题】:How to prevent cross domain issues by proxying in IIS?如何通过 IIS 中的代理来防止跨域问题?
【发布时间】:2009-06-23 08:53:36
【问题描述】:

我有一个用 Delphi 编写的站点,需要从 .NET Web 服务获取数据。为了使用 Web 服务,我首先附加到一个 .NET 网站,其中包含最终用户必须填写的向导,然后调用 Web 服务以填充 AJAX 下拉列表并将数据返回给调用 Delphi Web 应用程序。

所以,要清楚...

  1. Delphi 网站打开 .NET 网站
  2. .NET 网站从 .NET Web 服务填充 AJAX 下拉列表
  3. 当用户在 .NET Web 向导上单击提交时,它会调用 .NET Web 服务来获取数据并返回到 Delphi 网站

但是,调用 .NET Web 服务来填充下拉列表会导致 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 Web 服务方面遇到过类似的问题,我通过在 Apache 上使用代理解决了这个问题,以使托管向导和 Web 服务的网站看起来存在于同一个域中,因此停止错误。

谁能告诉我如何在 IIS 中做同样的事情?

如果我可以提供更多信息,请告诉我,因为我真的很想尽快解决这个问题。

非常感谢。

【问题讨论】:

    标签: .net web-services iis proxy cross-domain


    【解决方案1】:

    好的,经过多次谷歌搜索(和咬牙切齿),我发现这个网站很好地解释了解决方案。

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

    只是说明知道如何提出正确问题的重要性:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-15
      • 2012-09-18
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2015-12-23
      • 2014-03-24
      • 1970-01-01
      相关资源
      最近更新 更多