Как предотвратить удаление семейства сайтов SharePoint?
В настоящее время я использую веб-службу администратора Sharepoint 2010 и хочу убедиться, что определенное семейство сайтов не может быть удалено. Кто-нибудь знает способ сделать это так, что если у меня есть звонок как
adminService.DeleteSite(SiteCollection_TO_NEVER_DELETE);
Никогда не будет удален?
Спасибо за любые предложения
1 ответ
Если я вас правильно понимаю, это можно сделать с помощью функции SharePoint.
Вы можете создать и развернуть компонент SharePoint, в котором есть приемник веб-событий. В этом приемнике событий вы можете переопределить SiteDeleting
метод и отменить запрос на удаление семейства сайтов, изменив значение свойства Cancel
параметра в true
, Это вернет ошибку для любого, кто пытается удалить семейство сайтов. Вы также можете добавить сообщение об ошибке.
Например:
/// <summary>
/// A site collection is being deleted
/// </summary>
public override void SiteDeleting(SPWebEventProperties properties)
{
base.SiteDeleting(properties);
if(/*some condition*/)
{
properties.Cancel = true;
properties.ErrorMessage = "This site collection should never be deleted.";
}
}
Вы можете проверить для определенного имени или определенного URL.
Конечно, все равно можно было бы отключить эту функцию и удалить сайт. Но по крайней мере это предотвратит его случайное удаление.