Silverlight:System.Net.WebClientでcrossdomain.xmlを(存在しない)無視する方法は?

StackOverflow https://stackoverflow.com/questions/434962

質問

System.Net.WebClient を使用してHTTP要求を行うとセキュリティ例外が発生します。これは、 crossdomain.xml または clientaccesspolicy.xmlターゲットサーバー上のが見つからないか、制限が厳しすぎます。これには正当な理由(Cookieとクロスサイトリクエストフォージェリ)があることは知っていますが、必要なのは Cookieや派手なものを使用せずに任意のURLに対して単純なHTTP GETリクエストを行うだけなので、 / strong>。

URLを取得するプロキシのアイデアは既に考えていましたが、帯域幅の浪費は言うまでもなく、moreい回避策のように聞こえます。

Silverlightでそれを行う方法(ある場合)は何ですか?適切なクラスを使用していますか

役に立ちましたか?

解決

少なくともWebClientでは、それは実際には不可能だと思います。 全体的な考えは、クライアントを他のサーバーへの不要なリクエストから制限(保護...)することです。

これを回避するには、「任意のURL」を呼び出すプロキシWebサービスを使用します。 Webサーバーから取得し、結果をSilverlightクライアントに返します。こうすることで、必要な機能を実現している間、クライアントは保護されたままになります。

他のヒント

なぜそれを取り除きたいのですか?

クロスドメインシナリオでSilverlightリクエストをプロファイルする場合、常にclientaccesspolicy.xmlファイルを呼び出します。この動作を変更することはできません(Silverlightランタイムの内部)。さらに、clientaccessolicy.xmlファイルが見つからない場合、Flash / Flex equivelant(crossdomain.xml)を呼び出します。両方が存在しないか、そのドメインからのリクエストを許可しない場合、リクエストは単に失敗します。

これらのXMLファイルをローカルWebサーバーに配置する必要がないように、HttpHandlerの使用に関する記事を書いたので、動的にすることができます。この記事は次の場所にあります。

http://silverlighthack.com/post/2008/11/08/Silverlight-clientaccesspolicyxml-files-for-the-Enterprise-(Part-1-of-2).aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top