3

.NET 4には、拡張性のためにMEFを使用するアプリケーションがあります。私のメインアプリケーションには、、、およびの3つのアセンブリHostApplicationありContractsます。

Hostは、コンテナを作成して構成を行う「ブートストラップ」実行可能ファイルです。

Application私のアプリケーションのロジックと、サードパーティ用の拡張ポイントが含まれています。

Contracts拡張ポイントで使用されるインターフェイス(およびいくつかのヘルパークラス)が含まれています。

したがって、サードパーティアプリケーションを開発している人は、への参照を含める必要がありますが、への参照は含めContractsないでApplicationください。

私のセキュリティモデルは次のようになると思います。

  1. HostSecurityCriticalApplicationある必要があります
  2. ContractsSecuritySafeCriticalである必要があります
  3. すべてのサードパーティ拡張機能はSecurityTransparentである必要があります

デフォルトでは1.が満たされると思います。2.アセンブリ属性を使用して実装できることを知っています。問題は、ルール3をどのように適用するかです。オペレーティングシステムは、ダウンロードされたすべての拡張機能に信頼できないものとしてフラグを立てることにより、これを自動的に実行しますか?ダウンロードした拡張機能アセンブリが完全に信頼されるようになることは可能ですか?

4

1 に答える 1

3

アプリケーションが完全な信頼で実行されている場合、デフォルトでは、拡張機能は完全な信頼で実行され、必要なことをすべて実行できます。それらのセキュリティ属性が何であるかは問題ではありません。拡張機能で実行できることを制限するには、サンドボックスアプリドメインを作成する必要があります。あなたはあなたのHostそしてApplicationそのAppDomainで完全に信頼できるものとして設定し、他のすべてのコードはあなたがそれを与える許可だけを持っているでしょう。

このトピックに関するMSDNの記事は次のとおりです。方法:サンドボックスで部分的に信頼されたコードを実行する

于 2010-08-04T06:04:42.960 に答える