Как домены приложений можно использовать для размещения сторонних сборок, которые предоставляют элементы управления пользовательским интерфейсом в веб-приложении или приложении Windows? - PullRequest
2 голосов
/ 12 апреля 2011

MSDN говорит:

Изоляция приложений также важна для безопасности приложений. Например, вы можете запускать элементы управления из нескольких веб-приложений в одном процессе браузера таким образом, чтобы элементы управления не могли получить доступ к данным и ресурсам друг друга.

Как это будет достигнуто? Если я использую элементы управления из сборки в моей WebForm как часть пользовательского интерфейса, как мне загрузить это из отдельного домена?

Кроме того, возможно ли в Windows Forms иметь элементы управления пользовательского интерфейса на формах, которые находятся в сборке, загруженной в отдельный домен приложения? Если да, то как бы вы это сделали?

Я спрашиваю, потому что я использую много сторонних библиотек управления пользовательским интерфейсом. Как бы я использовал их «безопасным» способом, размещенным в другом домене приложения из моего основного приложения?

1 Ответ

1 голос
/ 14 апреля 2011

Если вы прочитаете далее , вы увидите, что вы можете создать несколько доменов в своем процессе и загрузить сборок в них или выполнить собрания в них.

Теперь из того, что вы спрашиваете, я думаю, что вы немного неправильно поняли концепцию. Сборки в двух разных доменах полностью разделены, они не могут обращаться друг к другу, поэтому то, что вы хотите сделать, загрузить элементы управления пользовательским интерфейсом в отдельный домен и использовать его в исходном домене, невозможно.

Цитируемая вами цитата говорит о таких сценариях, как одновременный доступ пользователей к одному приложению asp.net или множественные «вкладки» в одном обозревателе Интернета с несколькими веб-страницами. Они должны быть надежно разделены, что может быть достигнуто либо путем создания совершенно нового процесса для каждого пользовательского запроса или вкладки, либо путем создания отдельных доменов приложений. Преимущество, обеспечиваемое здесь доменами приложений, - лучшая масштабируемость / производительность, потому что создание нового процесса для каждого отдельного запроса к приложению asp.net будет слишком дорогостоящим.

Итак, чтобы ответить на ваш вопрос: если вы хотите использовать сторонние элементы управления и хотите, чтобы они взаимодействовали с вашим основным приложением, вы не можете загрузить их в отдельный домен, если не можете заставить их общаться с вашим приложение через сеть, удаленное взаимодействие, каналы и т. д.


...