我比較新的SharePoint應用程序開發。高信託S2S提供商託管的應用程序與「應用程序+用戶」政策
試圖創建一個駐地,高信託提供商託管與應用程序+用戶策略的應用程序。我已經在下面的文檔中創建了一個演示。
https://msdn.microsoft.com/library/office/fp179901(v=office.15) http://blogs.msdn.com/b/russmax/archive/2014/06/23/part-1-intro-to-provider-hosted-apps-setup-the-infrastructure.aspx
我面臨的一些問題,我有一些問題要澄清一下,如果有人可以提供幫助。
1)當我使用開發工具檢查我的請求時,它給了我下面的表單數據。
SPAppToken:
SPSiteUrl:
SPSiteTitle:首頁
SPSiteLogoUrl:
SPSiteLanguage:EN-US
SPSiteCulture:EN-US
SPRedirectMessage:EndpointAuthorityMatches
SPErrorCorrelationId:f069e89c-a0cd-20ce-a1c0-7db95db0334b
現在,當我檢查記錄與上述相關性研究ID,我發現下面的錯誤。
- 錯誤時,你得到令牌的應用I:0i.t | ms.sp.ext | ab8ff461-bc75-4516-b475-b666ac47eec0 @ 802f23e1-6e11-45d1-909c-07a7b0ab0ce2, 例外: Microsoft.SharePoint.SPException:Azure訪問控制 服務不可用。
- 應用程序令牌從appredirect.aspx請求站點:92bfe5c4-7255-4b09-a89a-07e0e2b03622,但在生成它時出現 錯誤。這可能是我們不需要令牌或應用程序主體未正確設置時的情況。 - 針對異常獲取錯誤消息Microsoft.SharePoint.SPException:Azure訪問控制服務的不可用爲 。
a)我相信高信任的應用程序它不應該尋找Azure ACS。 由於某些配置不正確而導致此錯誤? b)SPAppToken在這裏爲null。在高信任應用的情況下它是否爲空?
2)說我登錄到用戶A的共享點,並試圖啓動SharePoint應用程序。 在應用程序代碼中,我想獲取登錄用戶的身份(即A)。從下面的代碼我發現Request.LogonUserIdentity給了我用戶A的身份。但是我們怎麼能確定這個請求只是來自於共享點。我可以複製相同的應用程序URL並粘貼到瀏覽器窗口並使用窗口憑證登錄並獲得相同的結果。所以問題是如何驗證其合法請求是否僅來自共享點,並且沒有人僞造請求。 ALos,當我檢查開發工具中的請求時,它在請求頭中傳遞授權密鑰。這是什麼用途?
using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity)) { clientContext.Load(clientContext.Web, web => web.Title); clientContext.ExecuteQuery(); Response.Write(clientContext.Web.Title); }
3)如果我的應用程序犯規支持Windows身份驗證和只支持FBA同樣會發生什麼,有沒有什麼辦法讓用戶身份在這種情況下?
任何幫助將不勝感激。
感謝