2013-09-23 157 views
0

我目前正在使用Sharepoint 2010管理员web服务,并且希望确保无法删除特定的网站集。有谁知道一种方法来做到这一点,如果我有一个像如何防止删除SharePoint网站集?

adminService.DeleteSite(SiteCollection_TO_NEVER_DELETE);

永远不会被删除?

感谢您的任何建议

+0

http://blogs.technet.com/b/sharepointdevelopersupport/archive/2012/09/07/how-to-prevent-site-deletion-with-a-custom-event-receiver.aspx –

回答

0

如果我理解正确的话,可以通过使用SharePoint功能来完成。

您可以创建和部署具有Web事件接收器的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。

当然,仍然可以停用该功能并仍然删除该网站。但至少它会阻止它被意外删除。