2

MSDN says:

Isolating applications is also important for application security. For example, you can run controls from several Web applications in a single browser process in such a way that the controls cannot access each other's data and resources.

How would this be accomplished? If I am using controls from an assembly on my WebForm as part of the UI, how would I load that from a separate domain?

Also, is this possible in Windows Forms, to have UI controls on your forms that are from an assembly loaded in a separate appdomain? If so, how would you do so?

I ask because I use many 3rd party UI control libraries. How would I use these in a "safe" way, hosted from a different application domain from my main application?

4

1 に答える 1

1

さらに読むと、プロセスに複数のドメインを作成し、それらにアセンブリをロードしたり、それらのドメインでアセンブリを実行したりできることがわかります。

さて、あなたの質問から、あなたはその概念を少し誤解したと思います。2つの異なるドメインのアセンブリは完全に分離されており、相互にアクセスできないため、UIコントロールを別のドメインにロードして、元のドメインで使用することはできません。

あなたが書いた引用は、単一のasp.netアプリケーションへの同時ユーザーアクセスや、複数のWebページを表示する単一のInternetExplorerの複数の「タブ」などのシナリオについて説明しています。これらは安全に分離する必要があります。これは、ユーザーのリクエストまたはタブごとに完全に新しいプロセスを作成するか、個別のアプリドメインを作成することで実現できます。ここでappdomainsによって提供される利点は、asp.netアプリケーションへのすべての単一の要求に対して新しいプロセスを作成するのにコストがかかりすぎるため、スケーラビリティ/パフォーマンスが向上することです。

質問に答えるには、サードパーティのコントロールを使用してメインアプリとやり取りする場合、ネットワーク、リモート処理、パイプなどを介してアプリと通信できるようにしない限り、サードパーティのコントロールを別のドメインに読み込むことはできません。


于 2011-04-13T22:39:03.300 に答える