WSS3SDK之:如何创建或删除一个站点或站点集

如果要创建一个网站,可以使用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命名空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值