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

相關問題