現在、Sharepoint 2010 管理 Web サービスを使用しており、特定のサイト コレクションを削除できないようにしたいと考えています。誰かがこれを実現する方法を知っていますか?
adminService.DeleteSite(SiteCollection_TO_NEVER_DELETE);
削除されることはありませんか?
提案をありがとう
現在、Sharepoint 2010 管理 Web サービスを使用しており、特定のサイト コレクションを削除できないようにしたいと考えています。誰かがこれを実現する方法を知っていますか?
adminService.DeleteSite(SiteCollection_TO_NEVER_DELETE);
削除されることはありませんか?
提案をありがとう
私の理解が正しければ、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 を確認できます。
もちろん、機能を無効にしてサイトを削除することは可能です。ただし、少なくとも、誤って削除されるのを防ぐことができます。