サンドボックス環境でコードを実行するアプリケーションを作成しています。この環境では、信頼されていないコードが明示的に指定されたリソースを処理し、定義されたデータ型を返すことのみを許可する必要があります。この記事にあるプリンシパルを使用して、サンドボックスをセットアップしています。
また、サンドボックス環境内で実行する必要があるコードもいくつかあります。残念ながら、サンドボックス内で実行するようにタイプをセットアップしようとすると、次のエラーが発生します。
タイプ 'MyTypeRunningInSandbox' が継承セキュリティ ルールに違反しています。派生型は、基本型のセキュリティ アクセシビリティと一致するか、アクセスしにくくする必要があります。
基本型と派生型の両方が私によって作成されたものであり、どちらも他方よりも多かれ少なかれ安全であってはならないため、なぜこのエラーが発生するのかわかりません。
私のアプリケーション構造(理解を助けるため):
TypeLoader class
\
Trusted Sandbox Manager (i.e. sets up a the new sandbox)
\ (the error is happening in this class while creating the
| new app domain)
|
|Untrusted Sandbox Manager (i.e. runs the untrusted code)
上記のマイクロソフトの記事に関して私のソリューションを比較すると、私のコードは次の行に相当する部分で失敗しています。
ObjectHandle handle = Activator.CreateInstanceFrom(
newDomain, typeof(Sandboxer).Assembly.ManifestModule.FullyQualifiedName,
typeof(Sandboxer).FullName );
この問題のトラブルシューティング方法について何か考えはありますか?