Pregunta

Por ejemplo, la estructura de mis colecciones de sitios es la siguiente:

http://testserver1.com/sites/sitecollection1

http://testserver1.com/sites/sitecollection2

http://testserver1.com/sitecollection3

http://testserver1.com/team/sitecollection4

Quiero tener http://testserver1.com (encabezado de host) del código?¿Cómo puedo hacerlo usando el modelo de objetos?¿Hay algún problema si también tenemos configurada la asignación de acceso alternativo en estas colecciones de sitios?

¿Fue útil?

Solución

Puedes usar SPContext.Current.Site.HostName propiedad para obtener el nombre del host?

Normalmente puedes usar SPContext.Current.Site.Url para devolver la URL del sitio web raíz en la colección de sitios para la solicitud web actual.Si desea el contexto del sitio web actual, utilice SPContext.Current.Web.Url.

Otros consejos

Cuando dice "encabezado de host", asumo que se está referil a la aplicación web a la que pertenecen las colecciones de su sitio.Con eso en mente, puede usar la colección alternateurls de SPWEBImplication para obtener el (los) encabezado (s) de host asociado con esa aplicación web.

Dado que es posible tener múltiples URL asociadas con una sola aplicación web, deberías iterar a través de esta colección para obtener / encontrar el encabezado de host que desea.Por ejemplo:

SPAlternateUrlCollection allUrls = SPContext.Current.Site.WebApplication.AlternateUrls;
foreach (SPAlternateUrl url in allUrls)
{
    // Do something with each url.Uri.ToString()
}

Tenga en cuenta que deberá agregar una referencia a microsoft.sharepoint.administration para hacer uso de este código.

Licenciado bajo: CC-BY-SA con atribución
scroll top