Domanda

Ad esempio La struttura delle mie collezioni del sito è la seguente:

http://testserver1.com/sites/sitecollection1

http://testserver1.com/sites/sitecollection2

http://testserver1.com/sitecollection3

http://testserver1.com/team/sitecollection4

Voglio ottenere http://testserver1.com (header host) dal codice?Come posso farlo usando il modello oggetto?C'è un problema se abbiamo anche la mappatura degli accessi alternativa configurata anche su queste raccolte di siti?

È stato utile?

Soluzione

È possibile utilizzare la proprietà SPContext.Current.Site.HostName per ottenere il nome host?

Normalmente è possibile utilizzare SPContext.Current.Site.Url per restituire l'URL del sito Web principale nella raccolta del sito per la richiesta Web corrente.Se si desidera il contesto del sito Web corrente, utilizzare SPContext.Current.Web.Url.

Altri suggerimenti

Quando dici "Host Header", presumo che ti riferisca all'applicazione Web a cui appartiene le tue raccolte del sito.Con questo in mente, è possibile utilizzare la collezione Alternateurls SPWebApplication> per ottenere l'intestazione host associata a quell'applicazione Web.

Dal momento che è possibile avere più URL associati a un'unica applicazione Web, è necessario eseguire la iterata attraverso questa raccolta per ottenere / trovare l'intestazione host che desideri.Ad esempio:

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

Nota che è necessario aggiungere un riferimento a Microsoft.SharePoint.administration per utilizzare questo codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top