2015-02-10 52 views
1

我比較新的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同樣會發生什麼,有沒有什麼辦法讓用戶身份在這種情況下?

任何幫助將不勝感激。

感謝

回答

1

問題#1:在我看來,該步驟#9 this section(配置身份驗證設置)(從您剛纔提到的第一個MSDN文章)被錯過了,即,「ACS控制服務」被選中而不是「使用證書」選項。

對於問題#2:TokenHelper.cs中有幫助方法來驗證來自HttpRequest的AccessToken,該方法標識請求的有效性。

相關問題