Вопрос

По некоторым соображениям безопасности в одном из наших решений на уровне фермы нам необходимо ограничить некоторые действия, используя Event Receiver-FileMoving событие.Однако, как известно, приемники событий могут быть развернуты только функциями уровня Site или SiteCollection.Поскольку решение, обеспечивающее основные функциональные возможности, находится в пределах фермы, нам необходимо иметь возможность применять этот приемник событий к каждой существующей библиотеке документов.

Я подумал о создании функции уровня сайта для приемника событий, а затем включить ее на всех сайтах через FeatureActivated событие функции области фермы.Но это не распространяется на новые сайты, добавляемые после активации этой функции.А поскольку для функций уровня сайта нет настройки «включить по умолчанию», это не работает.

Потом я узнал Сайт добавлен событие, где я могу включить эту функцию, как только она будет добавлена.Но, насколько я понимаю, это также область действия сайта (SPWeb), поэтому новые веб-приложения и семейства веб-сайтов не рассматриваются.

Итак, есть идеи, как я могу создать решение на уровне фермы для развертывания события FileMoving по всей ферме?

Корпоративная версия Sharepoint 2010/2013

Это было полезно?

Решение

Для достижения этой цели вы можете использовать сшивание объектов.Вы просто развертываете простой файл элемента в функции и активируете его на уровне веб-приложения.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <FeatureSiteTemplateAssociation Id="the guid of the feature to staple to new sites" TemplateName="GLOBAL"/>
</Elements>

Также см. этот довольно информативный пост SP.SE о сшивании функций:

Что такое «сшивание функций»?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top