Question

Par exemple, la structure de mes collections de sites est la suivante :

http://testserver1.com/sites/sitecollection1

http://testserver1.com/sites/sitecollection2

http://testserver1.com/sitecollection3

http://testserver1.com/team/sitecollection4

Je veux obtenir http://testserver1.com (en-tête de l'hôte) à partir du code ?comment puis-je le faire en utilisant le modèle objet ?Y a-t-il un problème si un mappage d’accès alternatif est également configuré sur ces collections de sites ?

Était-ce utile?

La solution

Vous pouvez utiliser SPContext.Current.Site.HostName propriété pour obtenir le nom d'hôte ?

Normalement, vous pouvez utiliser SPContext.Current.Site.Url pour renvoyer l'URL du site Web racine dans la collection de sites pour la requête Web en cours.Si vous voulez le contexte du site Web actuel, utilisez SPContext.Current.Web.Url.

Autres conseils

Lorsque vous dites "Hôte-Hébergeur", je suppose que vous vous référez à l'application Web à laquelle appartiennent vos collections de votre site.Avec cela à l'esprit, vous pouvez utiliser la collection SPWEBApplication's AlternateRLS pour obtenir l'en-tête d'hôte associé à cette application Web.

Comme il est possible de disposer de plusieurs URL associées à une seule application Web, vous devez itérer via cette collection pour obtenir / trouver l'en-tête d'hôte souhaité.Par exemple:

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

Notez que vous devrez ajouter une référence à Microsoft.SharePoint.Administration pour utiliser ce code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top