【问题标题】:SharePoint Provider Hosted App - Identify CustomerSharePoint 提供程序托管应用程序 - 识别客户
【发布时间】:2014-07-25 14:18:52
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案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();
    

    就是这样。

    附:感谢微软的 Vesa Juvonen 给出了正确的方向

    【讨论】:

      猜你喜欢
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 2016-07-10
      • 2013-10-04
      • 1970-01-01
      • 2016-02-07
      • 1970-01-01
      相关资源
      最近更新 更多