How to create and delete a SharePoint site by web application
Validating in SharePoint 2007 is very strict. You can delete a site easily by windows application. But the same action in web application is very difficult. Following is some points need pay attention to.
1. FormDigest
The FormDigest is a web server control. You can find out it in Microsoft.SharePoint.dll. Webs must include this control if it need perform any operation on SharePoint.
<%@ Register Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
Namespace="Microsoft.SharePoint.WebControls" TagPrefix="cc1" %>
<body><form runat="server">
<cc1:formdigest id="FormDigest1" runat="server"></cc1:formdigest>
</form></body>
Usually, you can do most things on SharePoint if the web contains formdigest control. But sometimes, the operation will get a failing message even though the web has been include formdigest control. For example, the site deleting.
2. User Token
This is a surprising problem. I can create a site when my web contain formdigest control. But I can't delete it in the same way. I must use following codes to delete:
SPSite site = new SPSite("http://dgt-neil:50/sites/test");
SPSite tmpSite = new SPSite("http://dgt-neil:50/sites/test", site.UserToken);
tmpSite.AllowUnsafeUpdates = true;
tmpSite.Delete();