4

1年前のこのスレッドでは、 WriteableBitmapの一部が外部ドメイン (無料のイメージ サーバーなど) から来ると、読み取りアクセスがブロックされることが説明されています。

これが「DRM」用であることがさらに詳しく説明されています。別のドメインからの映画を含む映画リッパーを Silverlight で作成し、それを再キャプチャするという大きな脅威があると思います。それは同じドメインです!しかし、それはここでもそこでもありません。

とにかく、明らかに私は WritableBitmap を使用して、ユーザーの現在のセットアップのスクリーンショットをエクスポートしようとしています。しかし、私はこのクロスドメインの問題に止められています。

Silverlight の最新バージョンでこれを行う方法が本当にサポートされていないのでしょうか? crossdomain.xml または clientaccesspolicy.xml がありませんか? これは、 Silverlightにとって大きな障害ではありませんか? 巨大な "Screw You" であり、中途半端なセキュリティの障害物を配置して、開発者を妨害しますが、攻撃者を阻止しませんか?

編集:この質問は、こちらの質問と同じです。

4

3 に答える 3

5

あなたの感情は、合法的な目的でこれを行おうとしている多くの開発者によって共有されています。そこにはいくつかの回避策があり、それらはすべてハッキーまたは奇妙なものです。しかし、これはおそらく私が見た中で最高のものです:SIlverlight4.0のスクリーンキャプチャ

もう一度読んで、crossdomain.xmlソリューションを探していないことがわかりました。このページには他にもいくつかのオプションがあります(ここでも、「素晴らしい」ソリューションはありません): http: //betaforums.silverlight.net/forums/t/118030.aspx

また、これがオプションかどうかはわかりませんが、OOBアプリとしてのアプリは、ClientAccessPolicy.xmlまたはCrossDomain.xmlのセキュリティチェックに制限されません。ブラウザ外はあなたのためのオプションですか?


編集: 投稿とコメントをさらに確認すると、(トム、これを確認してください)自分のボックスで実行されているSLアプリのユーザーのインスタンスのスクリーンショットを取得する必要はないと思います(カスタマーサポートのようなものSilverlightはかなりうまく処理します)。

PrtScむしろ、ユーザーの画面の写真を撮ることです( -ishと同じです)。この場合、それははるかに困難ですが、不可能ではありません。Rui showは、ここでそれをどのように行っているかを示していますが、ユーザーのマシンにすでに存在するコンポーネントに依存しています。Jeremyは、Silverlight 4 Hackでさらにクリエイティブになります。COM登録なしでネイティブ/デスクトップCLRを使用すると、効果的にアクセスが可能になります。

于 2010-08-03T02:01:22.247 に答える
-1

この WritableBitmap の動作は、DRM とは何の関係もなく、すべてセキュリティに関係しています。取得しようとしているスクリーンショットに別のドメインのコンテンツを含む画像要素が表示されている場合、そのドメインには適切な権限を持つ crossdomain.xml ファイルが必要です。ドメイン所有者に連絡して、ドメインのルートに crossromain.xml を配置するように依頼できます。

または、crossdomain.xml をチェックしないため、Full-Trust OOB アプリケーションでこのトリックを実行する必要があります。

わかりました。ビジュアル ツリーに <Image Source="http://crossdomain.com/someimage.jpg" /> があり、そこから WriteableBitmap を作成しようとすると、その WriteableBitmap のピクセル アクセスは crossdomain.xml かどうかに関係なくロックされます。 . (マイクロソフトの恥)。良いニュース (ちょっと) は、次の回避策を使用できることです。WebClient を使用して画像を読み込みます。OpenReadCompleted ハンドラーからのストリームを使用して、イメージで SetSource を呼び出します。WriteableBitmap を作成し、Pixels プロパティがセキュリティ例外をスローしなくなったことに注目してください。理想にはほど遠いですが、扱いやすいです。

于 2010-08-04T00:02:11.813 に答える
-4

同じ質問で説明したように、Silverlight を取得して書き込み可能なビットマップからコンテンツを取得できるようにする唯一の方法は、次のいずれもありません

  • ブラウザ外
  • ユーザーのマシンにインストールされているサービス/コード/アプリ/ルート化された GAC
  • 高められた信頼

コンテンツをプロキシし、Silverlight をだまして、すべて同じドメインからのものであると思わせることです。

于 2010-08-09T17:43:41.220 に答える