IISでプロキシすることでクロスドメインの問題を防ぐ方法は?
-
06-07-2019 - |
質問
.NET Webサービスからデータを取得する必要があるDelphiで記述されたサイトがあります。 Webサービスを使用するために、エンドユーザーが入力する必要があるウィザードを含む.NET Webサイトに最初にアタッチし、次に、AJAXドロップダウンリストを設定してWebサービスを呼び出して呼び出し元のDelphi Webアプリケーションにデータを返します。
だから、明確にするために...
- Delphi Webサイトが.NET Webサイトを開きます
- .NET Webサイトは、.JAX WebサービスからAJAXドロップダウンリストを生成します
- ユーザーが.NET Webウィザードで[送信]をクリックすると、.NET Webサービスを呼び出してデータを取得し、Delphi Webサイトに戻ります
ただし、.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;
パスがWebサイトと同じサーバー上にある場合は正常に機能しますが、パスがなければ警告が表示されるため、クロスドメインセキュリティの問題である必要があります。
以前にJava Webサービスで同様の問題が発生しましたが、ウィザードとWebサービスをホストするWebサイトが同じドメインに存在するように見えるようにApacheでプロキシを使用することでこれを回避しました。エラー。
IISでこれと同じことができる方法を教えてもらえますか?
提供できる情報がまだある場合は、できるだけ早くこの問題を解決したいのでお知らせください。
事前に感謝します。
解決
OK、多くのグーグル(および歯ぎしり)の後、解決策を説明するのに良い仕事をしているこのウェブサイトを見つけました。
http://dotnetslackers.com/columns/ajax/MashitUpwithASPNETAJAX.aspx
正しい 質問の仕方を知ることがいかに重要であるかを示します:)