0

如果我为 Office 365 构建提供商托管应用程序,我如何识别客户及其环境?

我的意思是:该应用程序将从市场免费,但将有一个应用程序购买订阅。让我们假设以下场景:如果客户将购买订阅,他可以在我的应用程序中执行 10 项任务。如果他接受免费订阅,他可以完成 1 项任务。

客户应该能够在许多站点上安装该应用程序,并且该应用程序可以被任意数量的用户访问。但是,我需要以这样一种方式识别客户,即如果他在另一个网站上安装应用程序,他购买的订阅将适用于他。

如果应用程序首先安装在一个站点上,客户稍后会执行 3 个任务,如果他在另一个站点上安装应用程序,他可以完成剩下的 7 个任务(共 10 个)。因此,基本上该应用程序应在 Office 365 中识别客户及其环境/租户。

在本地使用 SPFarm.Id 很容易,但我如何在 Office 365 中识别用户和他的租户?

4

1 回答 1

1

好吧,我想通了。每个TenantIdOffice 365 实例以及本地实例都是唯一的。

如果有人感兴趣。这是一段获取租户 ID 的代码:

 SharePointContext spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);

 Uri sharepointUrl = new Uri(spContext.SPHostUrl.AbsoluteUri.ToString());

 string tId = TokenHelper.GetRealmFromTargetUrl(sharepointUrl).ToString();

而已。

PS Credits 来自微软的 Vesa Juvonen 给予正确的方向

于 2014-07-25T06:18:52.737 回答