Замечания об обезвреженных решениях
Обезвреженные решения — это функция Microsoft SharePoint 2010, позволяющая пользователям семейства веб-сайтов загружать собственные решения с пользовательским кодом.В типичных обезвреженных решениях пользователи самостоятельно загружают веб-части на сервер.
Изолированное приложение SharePoint запускается в защищенном, контролируемом процессе, имеющем доступ к ограниченной части веб-фермы.В Microsoft SharePoint 2010 поддержка обезвреженных решений реализована с помощью сочетания компонентов, коллекций решений, контроля решений и структуры проверки.
Указание уровня доверия проекта
Visual Studio поддерживает изолированные решения с помощью логического свойства проекта с именем Sandboxed Solution.Это свойство можно в любой момент задать в проекте либо указать при создании проекта в Мастере настройки SharePoint.
Примечание |
---|
Изменение свойства Sandboxed Solution проекта после его создания может вызвать ошибки при проверке. |
Решением является решением фермы - с областью действия в рамках Sandboxed Solution если свойство установлено в false или выборе параметра Развернуть как решение фермы.Однако принятое решение иначе, чем Sandboxed Solution решение фермы, если свойство установлено в true или выборе параметра Развернуть как изолированное решение в мастере.
Иерархия сайтов SharePoint
Принцип действия обезвреженных решений наглядно иллюстрирует иерархическая структура сайтов.Верхний элемент называется веб-фермой, а остальные элементы являются подчиненными по отношению к нему.
Веб-ферма
Веб-приложение A
Семейство сайтов A1
Сайт A1a
Веб-приложение B
Семейство сайтов B1
Сайт B1a
Сайт B1b
Семейство сайтов B2
Сайт B2a
Таким образом, веб-фермы могут содержать одно или несколько веб-приложений, каждое из которых, в свою очередь, может иметь дочерние сайты, и т. д.Изменения, внесенные в одно из семейств сайтов, не затрагивают другие семейства.Впрочем, изменения на уровне веб-фермы влияют на все содержащиеся в ней семейства сайтов.
Службы Windows SharePoint Services (WSS) 3.0 позволяют развертывать решения только на уровне фермы, однако в Microsoft SharePoint Foundation 2010 можно развертывать их как на уровне фермы (решения фермы), так и на уровне семейства сайтов (обезвреженные решения).
В чем преимущества обезвреженных решений?
Службы WSS 3.0 позволяют развертывать решения только на уровне фермы.Таким образом, не исключается возможность развертывания потенциально вредоносных или нестабильных решений, которые могут затронуть всю веб-ферму и входящие в ее состав семейства сайтов и приложения.Тогда как поддержка обезвреженных решений позволяет развертывать решения в более низких иерархических структурах фермы — в отдельных семействах сайтов.Степень защиты дополнительно повышается за счет того, что сборка решения не загружается в главный процесс IIS (w3wp.exe).Вместо этого она загружается в отдельный процесс (SPUCWorkerProcess.exe).Процесс отслеживается, кроме того, для защиты фермы от изолированных решений, совершающих вредоносные действия (например, запускающих непрерывные циклы, которые поглощают циклы ЦП) используются квоты и регулирование количества запросов.
Коллекция решений семейств сайтов
Windows SharePoint Services 2010 имеет функцию, например "коллекция решений для семейств веб-сайтов". Можно получить доступ к этой функции из страницы центра администрирования SharePoint 2010 или открыв меню действия сайта, выбор Параметры сайта, а затем выбрать ссылку Решения в коллекции в сайте SharePoint.Коллекции решений являются репозитариями решений и позволяют администраторам семейств сайтов управлять решениями, размещенными в этих семействах сайтов.
Коллекция решений — это библиотека документов, сохраненных в корневом веб-каталоге сайта SharePoint.Коллекция решений заменяет собой шаблоны сайтов и поддерживает пакеты решений.Когда пакет решений SharePoint (WSP-файл) загружается на сервер, он обрабатывается как обезвреженное решение.
Ограничения изолированных решений
При развертывании обезвреженного решения ему доступна лишь ограниченная часть функциональных возможностей SharePoint, что позволяет снизить потенциально возможные уязвимости безопасности для этого решения.Ниже приведены некоторые из этих ограничений.
Обезвреженным решениям доступен ограниченный набор элементов развертываемых решений.Потенциально уязвимые шаблоны проектов SharePoint, такие как определения сайтов и рабочие процессы, недоступны.
В системе SharePoint код обезвреженных решений выполняется в процессе SPUCWorkerProcess.exe, отдельном от главного пула процессов приложений IIS (w3wp.exe).
В проект нельзя добавлять сопоставленные папки.
Типы в сборке Microsoft.Office.Server Microsoft SharePoint Server 2010 невозможно использовать в изолированных решениях.Кроме того, только типы в сборке Microsoft.SharePoint Microsoft SharePoint Foundation 2010 можно использовать в изолированных решениях.
Следует отметить, что если указать, что решение SharePoint является изолированным, это не повлияет на сервер SharePoint. Это действие повлияет только на то, как проект SharePoint развертывается в SharePoint из Visual Studio и с какими сборками он связывается.Это действие никак не повлияет на созданный WSP-файл, и этот файл не содержит данных, непосредственно сопоставляемых со свойством Sandboxed Solution.
Возможности и элементы обезвреженных решений
Обезвреженные решения поддерживают следующие возможности и элементы:
поля/типы содержимого;
настраиваемые действия;
декларативные рабочие процессы.
приемники событий;
вызовы компонентов;
определения списков;
экземпляры списков;
модули/файлы;
Навигация
Onet.xml;
SPItemEventReceiver;
SPListEventReceiver;
SPWebEventReceiver;
поддержка всех веб-частей, производных от System.Web.UI.WebControls.WebParts.WebPart;
Веб-части
элементы функции WebTemplate (вместо Webtemp.xml);
визуальные веб-части;
Обезвреженные решения не поддерживают следующие возможности и элементы:
Страницы приложения
настраиваемая группа действий;
функции из области веб-фермы;
элемент HideCustomAction;
функции из области веб-приложений;
рабочие процессы с кодом.
См. также
Основные понятия
Различия между изолированными решениями и решениями фермы