カスタムの方法で制限されているサンドボックス環境に.NETアセンブリをロードする方法はありますか?別のAppDomainでアセンブリを実行できることは知っていますが、制限したい特定のことを実行できないように制限できますか?
例:ASP.NETアプリケーション内の別のアセンブリ内にプラグイン(単純で、特定のインターフェイスを介して定義されたもの)をロードできるようにしたいが、プラグインが特定のデータアクセス層コンポーネントにのみアクセスできるようにしたいデータベースに直接接続することはできません。複数のクライアントデータをホストする単一のアプリケーションインスタンスを持つシナリオを考えています。プラグインが現在ログインしている特定のクライアント/ユーザーのデータにのみアクセスできるようにしたいのです。
誰かがこれを行う方法について何かアイデアがありますか?
サンドボックスにアセンブリをロードする方法について、SOで次の質問を見つけましたが、サンドボックスのカスタム制限を追加することについては説明していません。
「サンドボックス環境」での.Netアプリケーションからのアセンブリのロード
更新:「 AppDomain.CreateDomain 」を呼び出すときに非常に具体的な「PermissionSet 」を設定できるようですが、上記で指定した権限を許可/禁止するために設定する必要のある権限が正確にはわかりません。MSDNにもこの記事があります:http://msdn.microsoft.com/en-us/library/bb763046.aspx
また、.NET 2.0/3.5でこれを実行したいと考えています。
System.AddInを使用する以外に、他のアイデアはありますか?