2010-12-15 4 views
5

APIでサードパーティ.NETアセンブリを実行したいと思います。私はそれが望むようにそれ自身のメソッドとオブジェクトを呼び出させたいが、私のAPIが明示的に与えていないものへのアクセスを拒否する。具体的には、私のAPIが第三者コードにオブジェクトを渡す場合、IMyObject私はそれらのオブジェクトをリフレクションまたは任意のメソッドを使用して、例えばインターフェイスを実装するMyObjectとすることは望ましくありません。.NETアセンブリからのリフレクションを無効にすることはできますか?

このサードパーティ製のアセンブリで反射を使用する機能を拒否する方法はありますか?私はすべてを完全にコントロールしているので、実行時に人を虐待するだけで、私のアセンブリを逆コンパイルしないようにする必要はありません。

答えて

4

あなたが探しているのは、サンドボックス内でアセンブリを実行することです。これは.NetでCAS (Code Access Security)を使用して達成することができます。

これはどのように動作するのですか。 AppDomainを作成し、それに限定された権限を割り当てます。たとえば、UIの表示は許可しますが、ファイルシステムやリフレクションの使用は許可しません。次に、アセンブリをアセンブリにロードして実行させます。

.Net 4.0では、まったく新しいセキュリティモデルが導入されています。しかし、私はそれについて多くを知らない。

Discover Techniques for Safely Hosting Untrusted Add-Ins with the .NET Framework 2.0

0

発信者が「完全信頼」で実行されている場合は、何もできません。彼はいつもアセンブリに完全にアクセスします。

最高ののは、アセンブリを難読化することです。そうすれば、組立作業は少し難しくなり、再設計することができます。

+0

申し訳ありませんが、あなたは私を誤解:ここ

はあなたが始めるために何かです。私は呼び出し元であり、私は他の誰かのアセンブリを呼び出しています。 – Clueless

関連する問題