0

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

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

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

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

在使用SPFarm.Id的前提下,我如何识别Office 365中的用户和他的租户?

回答

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提供的正确方向

相关问题