Silverlight アプリ (イントラネット.mydomain.net でホスト) と (webservices.mydomain.net) で WCF サービスを持っています。
クロスサイト ポリシー ファイルは必要ですか? もしそうなら、intranet.mydomain.net からのアクセスのみを許可するとどうなりますか?
Silverlight アプリ (イントラネット.mydomain.net でホスト) と (webservices.mydomain.net) で WCF サービスを持っています。
クロスサイト ポリシー ファイルは必要ですか? もしそうなら、intranet.mydomain.net からのアクセスのみを許可するとどうなりますか?
Tim Heuerによる「Silverlight でクロス ドメイン ポリシー ファイルを使用する方法」に関する次のリンクを確認することをお勧めします。
http://silverlight.net/learn/videos/all/how-to-use-cross-domain-policy-files-with-silverlight/
以下は、Tim Heuer のブログの別のページで、例も示しています。
Silverlight アプリと連携し、外部 WCF サービスへの要求を処理する独自の WCF サービスを作成することを検討します。このようにして、何も開いたままにせず、制御されたサービスへの通信のみが許可されます (ただし、言及したサービスは制御下にある可能性があります)。
この方法は、他のサービスが手元になく、頻繁に変更される可能性がある場合にも役立ちます。独自のサービスを介してこれがどのように処理されるかを制御でき、Silverlight コントロールを更新する必要はありません (変更が劇的ではない場合)。
はい、サービス ドメイン (webservices.mydomain.net) の ROOT に clientaccesspolicy.xml ファイルが必要です。
既定では、Silverlight は同じドメインまたは元のサイトでの Web サービスへの呼び出しをサポートします。同じドメインとは、呼び出しで同じサブドメイン、プロトコル、およびポートを使用する必要があることを意味します。これはセキュリティ上の理由によるもので、クロスドメインの偽造を防ぎます。
ファイルの例を次に示します。
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://intranet.mydomain.net"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
これにより、intranet.mydomain.net からの要求のみが許可されます。
編集
質問されました: WCF サービスが 2 つある場合、これはどのように機能しますか? /ServiceA/a.svc と /ServiceB/b.svc で、ServiceA は誰でも、どこからでもアクセスできるようにし、ServiceB はイントラネットからのみ動作するようにしますか?
ポリシー ファイルは次のようになります。
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://*"/>
</allow-from>
<grant-to>
<resource path="/ServiceA/" include-subpaths="true"/>
</grant-to>
</policy>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://intranet.mydomain.net"/>
</allow-from>
<grant-to>
<resource path="/ServiceB/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>