Silverlight でローカル アプリケーションを起動する方法があれば教えてください。IE 8 に埋め込まれたユーザー コントロールでこれを行うとセキュリティ上の問題が発生するため、これを Silverlight アプリに変換したいと考えています。この小さな問題により、Silverlight を進めることができなくなっています。
前もって感謝します..
カルロス。
Silverlight でローカル アプリケーションを起動する方法があれば教えてください。IE 8 に埋め込まれたユーザー コントロールでこれを行うとセキュリティ上の問題が発生するため、これを Silverlight アプリに変換したいと考えています。この小さな問題により、Silverlight を進めることができなくなっています。
前もって感謝します..
カルロス。
これは、SL4 で Silverlight OOB との COM 相互運用を使用することで、理論的には可能ですが、同じセキュリティの問題が残り、さらに展開の問題がいくつか追加されます。
これを IE 内から直接行うには、適切なセキュリティ アクセス許可でインストールされるアドインを作成する必要があります。このための「自動」モデルは、標準の IE セキュリティ ポリシーに違反するため、ブラウザからローカル システムに直接アクセスする方法はありません。
これにより、Silverlight セキュリティ モデルが完全に無効になります。それでは、頑張ってください。あなたがそれをすることはできません。これは、正式には「悪いこと」として知られています。
ジュラシック・パークから学んだこと: 何かができるからといって、何かをしなければならないわけではありません。
Silverlight 4 を使用して「Out of Browser」サポートを取得することは絶対に可能です。ただし、「ホスト」マシン上のアプリケーションにアクセスするために必要なことは、SL4 アプリケーションが信頼されていることを証明することです。
これには、証明書の取得が含まれます。これは、CA (またはインターネット アプリケーションの場合は同様) から取得するか、イントラネットで使用する独自の証明書を生成して、ユーザーに単純にインストールさせるか、別の自動化されたシステム管理スタイル プロセスを介してインストールさせることができます。
肝心なのは、SL4 アプリケーションが OOB を実行していて、それが信頼されている場合、ホスト マシン上のあらゆるものにアクセスできるということです。ポイントに。
ファイルへのアクセスなどはできますが、アプリケーションを直接呼び出すことはできません。これは、COM オブジェクトとしてインストールされていない限りです。
そのため、「スクリプト」ホスト COM オブジェクトを使用してアプリケーションを呼び出す必要があります。スクリプト ホストへの参照を作成し、アプリケーションを呼び出すコマンド (および必要に応じてパラメーター) を渡すだけです。
ちょっと早く、あなたは壁を壊しました:-)
ユーザーは、現在許可されているマシンでアプリケーションを実行することしかできないことに注意してください。そのため、制御が制限されているユーザーに対して管理ツールを呼び出すことはできません。
詳細はこちら http://msdn.microsoft.com/en-us/library/dd550721(VS.95).aspx
Silverlight アプリケーションはブラウザー上で実行されるため、信頼できるアプリケーションである必要があります。
ローカル マシンでアプリケーションを起動する場合は、次のコードを使用します。
AutomationFactory.CreateObject("WScript.Shell").Run(FilePath);
名前空間を使用するSystem.Runtime.InteropServices.Automation
既にお持ちのユーザー コントロールの開発について質問を投稿する必要があるように思えます。最終的には、使用するテクノロジーに関係なく、ユーザーに手動でオプトインさせる必要があります。ブラウザーでホストされている Silverlight は、抜け出せない安全で優れたサンドボックス内に存在するように設計されています。この場合、それはあなたの問題に対する答えではありません。