2009-07-29 15 views
2

カスタムアセンブリでも制限されているSandbox環境に.NETアセンブリをロードする方法はありますか?別のAppDomainでアセンブリを実行できることは知っていますが、制限したい特定のことを実行できないように制限できますか?.NETでSandboxを使用してプラグインモデルを作成する方法は?

例:ASP.NETアプリケーション内の別のアセンブリ内でプラグイン(単純な、特定のインターフェイス経由で定義されたもの)をロードできるようにしたいが、プラグインが特定のインターフェイスにしかアクセスできないようにしたいデータアクセスレイヤーコンポーネントであり、どのデータベースにも直接接続することはできません。私は、単一のアプリケーションインスタンスに複数のクライアントデータをホストするシナリオを考えています。プラグインが、現在ログインしている特定のクライアント/ユーザーのデータにアクセスできるようにしたいだけです。

誰でもどのようにこれを行うにはアイデア?

私はサンドボックスにアセンブリをロードする方法については、ここでのSOに次の質問を見つけましたが、それはサンドボックスの任意のカスタム制限を加えることについて話しません:

Loading Assemblies from a .Net Application in a 'Sandbox Environment'

更新:それは見えます「AppDomain.CreateDomain」を呼び出すときは、「PermissionSet」非常に具体的に設定することができますが、私は、私は/上記の指定されたアクセス権を許可しないように設定する必要があると思いますどのような権限を正確にわからないように。この記事は、MSDNでもあります:http://msdn.microsoft.com/en-us/library/bb763046.aspx

をまた、私はSystem.AddInを使用するよりも、他の.NET 2.0/3.5

他のアイデアを、この中に行うために探していますか?

+0

申し訳ありませんが、.NET 1.0ではこれを行う方法がありません。 –

+0

ジョン・サンダースは、ええと...私はバージョンを指定していない、人々は少なくとも.NET 2.0を想定して考えました。とにかく、私は質問に私が探しているバージョンを追加しました。 –

+0

他にも、System.AddInを使用する以外のアイデアはありますか? –

答えて

5

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

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

+0

私はSystem.AddInについて完全に忘れてしまった。 .NET 3.5が初めて登場したとき、それについて聞いたことがあります。ありがとう! –

関連する問題