¿Cómo obtener el encabezado del host en el que se aloja la colección de sitios?
-
09-12-2019 - |
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?
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.