Если во время активации функции возникает ошибка, она не активирует эту функцию и отменяет любые эффекты, которые могли быть развернуты как часть Манифеста Элементов.
Таким образом, благодаря хитрому использованию этого, вы можете использовать часть FeatureActivation приемника функции, чтобы проверить, кто ее активирует, и выдать исключение UnauthorizedAccessException с соответствующим сообщением об ошибке, в котором подробно описано, почему эту функцию нельзя активировать. Это будет отображаться как стандартная страница ошибки SharePoint с указанным вами сообщением. Если у вас уже есть получатель функции, вам нужно добавить его в начале части FeatureActivation, чтобы не происходило никаких программных действий (в отличие от элементов манифеста, они не отозваны при неудачной активации).
Если вы ранее не использовали Feature Receiver, вам просто нужно две части, чтобы установить его.
В XML-элементе вашей функции добавьте следующие два атрибута в узел Feature.
ReceiverAssembly=(four-part-assembly-string)
ReceiverClass=(full namespace.class name of receiver class)
Написать класс получателя. Это наследуется от SPFeatureReceiver
и имеет 4 обязательных переопределения в FeatureActivated
, FeatureDeactivating
, FeatureInstalled
и FeatureUninstalling
. Вам не нужно ничего делать за последние 3. Вы запишете проверку безопасности в методе FeatureActivated
.