サイトコレクションがホストされているホストヘッダーを取得する方法
-
09-12-2019 - |
質問
例えば私のサイトコレクション構造は次のとおりです。
http://testserver1.com/sites/sitecollection1
http://testserver1.com/sitecollection3
http://testserver1.com (ホストヘッダー)を取得したいです。Object Modelを使用してそれを行うにはどうすればいいですか?これらのサイトコレクションにも代替アクセスマッピングが設定されている場合は問題がありますか?
解決
Host Nameを取得するためにSPContext.Current.Site.HostName
プロパティを使用できますか?
通常、SPContext.Current.Site.Url
を使用して、現在のWeb要求のサイトコレクション内のルートWebサイトのURLを返すことができます。現在のWebサイトのコンテキストにSPContext.Current.Web.Url.
を使用したい場合
他のヒント
「ホストヘッダー」と言うと、サイトコレクションが属するWebアプリケーションを参照していると思います。それを念頭に置いて、SPWebApplicationの alternateurls コレクションを使用して、そのWebアプリケーションに関連付けられているホストヘッダーを取得できます。
単一のWebアプリケーションに関連付けられている複数のURLを持つことが可能ですので、必要なホストヘッダーを取得/検索するには、このコレクションを繰り返す必要があります。例えば:
.
SPAlternateUrlCollection allUrls = SPContext.Current.Site.WebApplication.AlternateUrls;
foreach (SPAlternateUrl url in allUrls)
{
// Do something with each url.Uri.ToString()
}
このコードを利用するには、 Microsoft.SharePoint.Administration への参照を追加する必要があることに注意してください。