WSS3SDK之:如何建立或刪除一個網站或網站集

來源:互聯網
上載者:User
如果要建立一個網站,可以使用 SPWebApplication類的 Add方法。如果要在一個網站下建立子網站,可以使用 SPWeb類的 Webs屬性返回子網站的集合,然後調用集合的 Add方法。
下面的範例將從3個文字框中收集資訊,然後基於當前網站的模板建立一個新的子網站。文字框使用者指定新建立網站的名稱,URL以及描述資訊。
注意
本範例中使用Microsoft.SharePoint.SPContent類成員來擷取當前的網站集合,網站和列表。在HTTP上下文以外,比如在命令列應用或Windows應用中,這種方式是沒法用的。
VB

Dim mySite As SPWeb = SPContext.Current.Web
Dim subSites As SPWebCollection = mySite.Webs
Dim currentTemplate As String = mySite.WebTemplate

Dim siteUrl As String = TextBox1.Text.ToString()
Dim siteTitle As String = TextBox2.Text.ToString()
Dim siteDescription As String = TextBox3.Text.ToString()

subSites.Add(siteUrl, siteTitle, siteDescription, 
   Convert.ToUInt32(1033), currentTemplate, True, False)

C#

SPWeb mySite = SPContext.Current.Web;
SPWebCollection subSites = mySite.Webs;
string currentTemplate = mySite.WebTemplate;

string siteUrl = TextBox1.Text.ToString();
string siteTitle = TextBox2.Text.ToString();
string siteDescription = TextBox3.Text.ToString();

subSites.Add(siteUrl, siteTitle, siteDescription, 1033, 
   currentTemplate, true, false); 

上面的代碼需要引用Microsoft.SharePoint命名空間。
在例子中,SPWeb類的WebTemplate屬性可以返回當前網站定義的名稱,並在隨後傳給Add方法的參數。該方法的另外3個參數來自文字框的內容。還有3個參數用於指定1033地區號,true使得建立的網站使用特定權限,false的作用是:如果與之位置相同的地方存在檔案夾,則拋出異常;如果改成true則會將會將其轉換成一個SharePoint網站。
刪除一個網站,可以使用SPWeb類的Delete方法,或者SPWebApplication類的Delete方法。
下面的代碼假設用一個textbox來指定要刪除網站的URL地址,然後使用SPWebApplication類的Delete方法刪除網站。
VB

Dim deleteSite As String = TextBox1.Text.ToString()

Dim mySite As SPSite = SPContext.Current.Site
Dim sites As SPWebCollection = mySite.AllWebs

sites.Delete(deleteSite)

C#

string deleteSite = TextBox1.Text.ToString();

SPSite mySite = SPContext.Current.Site;
SPWebCollection sites = mySite.AllWebs;

sites.Delete(deleteSite); 

該代碼需要引用Microsoft.SharePoint命名空間。
代碼中,通過SPSite類的AllWebs屬性返回當前網站集合下所有網站的集合。
可以使用SPVirtualServer類的Sites屬性返回虛擬伺服器上網站集合的集合,然後使用SPSiteCollection類的Add方法來添加一個網站集合。
下面的代碼在當前SharePoint Web應用程式下建立了一個網站集合。
VB

Dim webApplication As SPWebApplication = SPContext.Current.Site.WebApplication
Dim siteCollections As SPSiteCollection = webApplication.Sites

siteCollections.Add("http://Server_Name/sites/Site_Collection_Name", 
   "User_Name", "User_Email")

C#

SPWebApplication webApplication = SPContext.Current.Site.WebApplication;
SPSiteCollection siteCollections = webApplication.Sites;

siteCollections.Add("http://Server_Name/sites/Site_Collection_Name",
"User_Name","User_Email ");

該代碼需要引用Microsoft.SharePoint.Administration命名空間。
下面的代碼中執行個體化了一個SPGlobalAdmin類,用於調用OpenVirtualServer方法,返回指定URI下的虛擬伺服器。
如果要從一個虛擬伺服器上刪除一個網站集合,需要使用SPGlobalAdmin類的AdminFormDigest屬性來插入一個資訊摘要到瀏覽器頁面中來進行安全驗證。我們可以使用System.Web.UI.Page類的RegisterHiddenField方法往頁面中插入一個隱藏欄位的方式註冊該摘要。另外,使用SPGlobalAdmin類的RequestFromAdminPort欄位來指定請求的內容通過管理連接埠來傳遞。
下面的範例利用Page_Load事件來將用於管理的表單摘要包含到頁面中,然後建立請求。
VB

Private globalAdmin As New SPGlobalAdmin()

Private Sub Page_Load(sender As Object, e As System.EventArgs)

    Context.Items(SPGlobalAdmin.RequestFromAdminPort) = True
    Page.RegisterHiddenField("__REQUESTDIGEST", 
        globalAdmin.AdminFormDigest)

End Sub 'Page_Load

Private Sub Button1_Click(sender As Object, e As System.EventArgs)

    Dim globalAdmin As New SPGlobalAdmin()
    Dim uri As New System.Uri("http://Server_Name")
    Dim vServer As SPVirtualServer = globalAdmin.OpenVirtualServer(uri)
    Dim siteCollections As SPSiteCollection = vServer.Sites

    siteCollections.Delete("sites/Site_Collection")

End Sub 'Button1_Click

C#

private SPGlobalAdmin globalAdmin = new SPGlobalAdmin();

private void Page_Load(object sender, System.EventArgs e)
{
    Context.Items[SPGlobalAdmin.RequestFromAdminPort] = true;
    Page.RegisterHiddenField("__REQUESTDIGEST", 
        globalAdmin.AdminFormDigest);
}

private void Button1_Click(object sender, System.EventArgs e)
{
    SPGlobalAdmin globalAdmin = new SPGlobalAdmin();
    System.Uri uri = new System.Uri("http://Server_Name");
    SPVirtualServer vServer = globalAdmin.OpenVirtualServer(uri);
    SPSiteCollection siteCollections = vServer.Sites;

    siteCollections.Delete("sites/Site_Collection");
}

該代碼需要引用Microsoft.SharePoint.Administration命名空間。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.