Запретить пользователям активацию функций в Sharepoint - PullRequest
0 голосов
/ 28 мая 2010

Если я разверну решение на уровне фермы, можно ли как-то помешать владельцам различных семейств сайтов активировать функции, представленные в этом решении?

Ответы [ 3 ]

3 голосов
/ 28 мая 2010

Простой способ запретить пользователям семейства сайтов активировать определенную функцию - пометить ее как скрытую. Эти функции затем могут быть активированы администраторами фермы только с помощью команд STSADM.

Чтобы скрыть функцию, измените атрибут Hidden элемента Feature на «TRUE», как показано ниже:

<Feature 
      Id="AD2146D-62DA-4911-DBC1-AE177DE40084"
      Title="Restricted Web Parts" 
      Hidden="TRUE"
      .../>

В качестве альтернативы, если вы используете SharePoint 2010, вы можете использовать Feature Pack для решения этой проблемы, ориентируя набор функций на определенный набор пользователей.

1 голос
/ 28 мая 2010
0 голосов
/ 28 мая 2010

Если во время активации функции возникает ошибка, она не активирует эту функцию и отменяет любые эффекты, которые могли быть развернуты как часть Манифеста Элементов.

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

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

  1. В XML-элементе вашей функции добавьте следующие два атрибута в узел Feature.

    ReceiverAssembly=(four-part-assembly-string)
    ReceiverClass=(full namespace.class name of receiver class)
    
  2. Написать класс получателя. Это наследуется от SPFeatureReceiver и имеет 4 обязательных переопределения в FeatureActivated, FeatureDeactivating, FeatureInstalled и FeatureUninstalling. Вам не нужно ничего делать за последние 3. Вы запишете проверку безопасности в методе FeatureActivated.

...