如果我为Office 365构建提供程序托管应用程序,我该如何识别客户及其环境?
我的意思是:该应用程序将从市场上免费,但将有一个应用内购买订阅。让我们假设以下场景:如果客户将购买订阅,他可以在我的应用程序中执行10个任务。如果他获得免费订阅,他可以完成1项任务。
客户应该能够在许多网站上安装该应用,并且任意数量的用户都可以访问该应用。但是,我需要以这样一种方式识别客户:如果他将应用程序安装在另一个站点上,他购买的订阅将适用于他。
如果应用程序首先安装在一个站点上,如果客户在另一个站点上安装应用程序,那么客户稍后会执行3个任务,他可以执行7个剩余任务(满分10个)。所以基本上应用程序应该在办公室365中识别客户和他的环境/租户。
在内部使用SPFarm.Id会很容易,但如何在Office 365中识别用户及其租户?
答案 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提供了正确的方向