3

カスタムの方法で制限されているサンドボックス環境に.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を使用する以外に、他のアイデアはありますか?

4

1 に答える 1

5

System.AddInフレームワーク(私の意見では単純なタスクには少し複雑です)を使用するか、カスタムAppDomainを作成し、必要なアクセス許可(最小セット)をここで読むことができます

AddInフレームワークは3.5afairで追加されました。また、スタブを生成するビジュアルプラグインにグーグルでアクセスできるため、このソリューションの使用がはるかに簡単になります。

于 2009-07-29T00:24:53.010 に答える