SharePoint提供商托管应用程序 - 识别客户

时间:2014-07-09 07:29:47

标签: sharepoint-2013 office365 sharepoint-online sharepoint-apps

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

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

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

如果应用程序首先安装在一个站点上,如果客户在另一个站点上安装应用程序,那么客户稍后会执行3个任务,他可以执行7个剩余任务(满分10个)。所以基本上应用程序应该在办公室365中识别客户和他的环境/租户。

在内部使用SPFarm.Id会很容易,但如何在Office 365中识别用户及其租户?

1 个答案:

答案 0 :(得分:1)

好吧,我明白了。 TenantId对于每个Office 365实例以及内部部署都是唯一的。

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

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

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

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

就是这样。

P.S。积分给微软的Vesa Juvonen提供了正确的方向