发现多地理位置租户配置
使用 SharePoint 租户时,需要能够检测租户是否为多地理位置租户,并标识默认和附属地理位置。
下图展示的多地理位置租户包含下列地理位置:
- 一个位于北美的默认地理位置。
- 一个位于欧洲的附属地理位置。
- 一个位于亚洲的附属地理位置。
获取多地理位置租户配置信息
根据所用的具体方案,你可以使用下列 API 之一或组合,访问多地理位置租户网站:
SharePoint CSOM API:不感知多地理位置。 根据具体方案,你需要定位正确的地理位置(例如,访问用户配置文件或执行租户 API 操作)。
Microsoft Graph API:感知多地理位置。 建议使用 Microsoft Graph 访问多地理位置租户网站。
SharePoint REST API:此 API 通常用于网站 URL 的上下文,因此,无需考虑租户是否为多地理位置租户。 一些 REST API 方案(如搜索或用户配置文件)可能要求按地理位置进行调用。
使用 CSOM API
使用 Tenant
类和 GetTenantInstances
方法获取租户的地理位置可以通过 CSOM 完成,如下面的代码片段所示:
Tenant tenant = new Tenant(clientContext);
var tenantInstances = tenant.GetTenantInstances();
clientContext.Load(tenantInstances);
clientContext.ExecuteQuery();
使用 Microsoft Graph API
可以使用 Microsoft Graph 获取租户的地理位置信息。 下面的示例返回一个集合,其中每个地理位置对应一个对象。
注意
下面的代码示例使用 siteCollection
对象上的 dataLocationCode
属性。 发布时,此属性仅可在 Microsoft Graph beta 终结点中使用。
GET https://graph.microsoft.com/beta/sites?filter=siteCollection/root%20ne%20null&select=webUrl,siteCollection
多地理位置租户的响应示例
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#sites",
"value": [
{
"webUrl": "https://contoso.sharepoint.com/",
"siteCollection": {
"dataLocationCode":"NAM",
"hostname": "contoso.sharepoint.com"
}
},
{
"webUrl": "https://contosoeur.sharepoint.com/",
"siteCollection": {
"dataLocationCode":"EUR",
"hostname": "contosoeur.sharepoint.com"
}
},
{
"webUrl": "https://contosoapc.sharepoint.com/",
"siteCollection": {
"dataLocationCode":"APC",
"hostname": "contosoapc.sharepoint.com"
}
}
]
}
有关详细信息,请参阅 MultiGeo.TenantInformationCollection 示例。
注意
若要详细了解有关权限以及如何配置应用程序的信息,请参阅设置多地理位置示例应用。
发现租户是否为多地理位置租户
可以使用 Microsoft Graph 发现租户是否为多地理位置租户,因为通过 Microsoft Graph 向多地理位置租户发出的请求将返回集合中的多个项。
下例显示向单地理位置租户执行 Microsoft Graph 调用返回的结果。
GET https://graph.microsoft.com/beta/sites?filter=siteCollection/root%20ne%20null&select=webUrl,siteCollection
单地理位置租户的响应示例
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#sites",
"value": [
{
"webUrl": "https://singlegeotest.sharepoint.com/",
"siteCollection": {
"dataLocationCode":"",
"hostname": "singlegeotest.sharepoint.com"
}
}
]
}