Procedimiento para crear o eliminar un sitio o una colección de sitios
Para crear un sitio, use uno de los métodos Add de la clase SPWebCollection. Para crear un subsitio bajo un sitio, use la propiedad Webs de la clase SPWeb para devolver la colección de subsitios y, a continuación, realice una llamada a uno de los métodos Add para la colección.
El siguiente ejemplo crea un nuevo subsitio que se basa en la plantilla del sitio actual y en información recopilada de tres cuadros de texto. Los cuadros de texto especifican el nombre que se va a usar en la nueva dirección URL, el título que se va a usar para el sitio y la descripción del mismo.
Nota
Los ejemplos de código de este tema usan miembros de la clase Microsoft.SharePoint.SPContext para obtener la colección de sitios, sitios web o lista actuales. Fuera de un contexto HTTP, como en una aplicación de consola o una aplicación Windows, puede obtener referencias a los objetos clave con un método diferente. Para obtener más información, consulte Obtención de referencias a sitios, aplicaciones web y otros objetos clave.
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)
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);
El ejemplo anterior necesita una directiva using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.
En el ejemplo, la propiedad WebTemplate de la clase SPWeb devuelve el nombre de la definición de sitio actual, que se pasa como un parámetro del método Add. Además, tres parámetros de este método pasan la información recopilada de los tres cuadros de texto. Los otros tres parámetros especifican 033 como la carpeta de configuración regional, true para crear un sitio con permisos únicos y false para convertir cualquier sitio web existente en la misma ubicación en un sitio de SharePoint.
Para eliminar un sitio, use el método Delete de la clase SPWeb del método Delete de la clase SPWebCollection.
En el siguiente ejemplo se supone que se usa un cuadro de texto para especificar la dirección URL de un sitio para eliminarla y que se usa el método Delete de la clase SPWebCollection para eliminar el sitio.
Dim deleteSite As String = TextBox1.Text.ToString()
Dim mySite As SPSite = SPContext.Current.Site
Dim sites As SPWebCollection = mySite.AllWebs
sites.Delete(deleteSite)
string deleteSite = TextBox1.Text.ToString();
SPSite mySite = SPContext.Current.Site;
SPWebCollection sites = mySite.AllWebs;
sites.Delete(deleteSite);
El ejemplo anterior necesita una directiva using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.
En el ejemplo, la propiedad AllWebs de la clase SPSite devuelve la colección de todos los sitios incluidos dentro de la colección de sitios actual.
Para crear una colección de sitios, use la propiedad Sites de la clase SPVirtualServer para devolver la colección de colecciones de sitios del servidor virtual y use uno de los métodos Add de la clase SPSiteCollection.
El siguiente ejemplo crea una colección de sitios dentro de la colección de colecciones de sitios de la aplicación web de SharePoint actual.
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")
SPWebApplication webApplication = SPContext.Current.Site.WebApplication;
SPSiteCollection siteCollections = webApplication.Sites;
siteCollections.Add("http://Server_Name/sites/Site_Collection_Name",
"User_Name","User_Email ");
El ejemplo anterior requiere una directiva using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.Administration .
El ejemplo crea una instancia de la clase SPGlobalAdmin para realizar una llamada al método OpenVirtualServer y devolver el servidor virtual con el URI especificado.
Para eliminar una colección de sitios de un servidor virtual se necesita la validación de seguridad que usa la propiedad AdminFormDigest de la clase SPGlobalAdmin para insertar una síntesis del mensaje en la página del explorador. Para ello, puede registrar la síntesis como un campo oculto a través del método RegisterHiddenField de la clase System.Web.UI.Page. Además, debe usar el campo RequestFromAdminPort de la clase SPGlobalAdmin para especificar que el contexto de la solicitud sea a través del puerto administrativo.
El ejemplo siguiente usa el evento Page_Load para incluir una síntesis de formulario administrativo en la página y para establecer el contexto de la solicitud.
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
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");
}
El ejemplo anterior requiere una directiva using (Imports en Visual Basic) para el espacio de nombres Microsoft.SharePoint.Administration .
Vea también
Referencia
Otros recursos
Trabajar con objetos de listas y colecciones
Introducción a la personalización mediante programación de un sitio web de SharePoint en Visual Studio
Validación de seguridad y realización de envíos para actualizar datos
Concesión de privilegio