2014-05-12 23 views
0

我有一個沒有任何認證/授權的公用ASP.NET網站。這是嚴格的外部網站,爲匿名用戶提供信息。我正嘗試在安全的SP2013站點中調用列表/庫數據,並在ASP.NET站點上呈現列表/庫項目。 SP2013 Web應用程序與ASP.NET站點位於同一服務器和域上,並且這兩個站點都在相同的IIS實例下運行。如何在使用JavaScript/JQuery的公用ASP.NET網站上使用SP2013 REST API?

據我瞭解,我必須使用跨域庫要做到這一點,因爲我的願望是用使用匿名用戶的客戶端代碼(即的JavaScript/JQuery的)。我認識到使用服務器端對象模型是另一種方法,我正在利用C#來實現某些功能。無論如何,我在SP.RequestExecutor說我沒有定義應用程序Web URL時遇到了問題。我正在努力尋找關於如何設置的文檔。另一個挑戰是我真的不想在查詢字符串中使用appweburl和hosturl(如果可能的話)。如果還有另一種方法可以做到這一點,我可以接受。我真的想要利用REST API並使用服務帳戶(理論上)執行JS代碼。

回答

1

您正在使用的客戶端代碼正確的做法但也有因的SharePoint 2013的安全模型需要一些額外的步驟。您創建的內容被SharePoint視爲外部託管的SharePoint應用程序。您的應用程序無法匿名向SharePoint 2013進行身份驗證;它必須具有SharePoint可以分配權限的身份。

要訪問「安全SP2013網站」你的代碼中的任何名單將不得不提供一個應用程序(這將駐留在一個App URL)來與的SharePoint可以交換安全令牌。您可以選擇使用Azure作爲訪問控制提供程序,或者使用您的應用程序創建STS信任。設置完成後,應用程序必須被安裝到SharePoint的人員授予它所需的權限(在本例中爲讀取權限),並且只能由擁有至少權限級別的人員安裝列出該應用程序需要。

有關安全模型一步一步的演練,我建議斯科特·希利爾的在SharePoint 2013的應用開發Microsoft SharePoint 2013 App Development (Developer Reference)書。

+0

感謝您的解釋。我遇到的部分是找到我創建新的「SharePoint應用程序」的URL /地址並獲取安全/令牌信息,然後如何將它合併到REST調用中。你們是否有代碼示例或者有關如何執行此操作的步驟的博客?我瀏覽了互聯網,並且還在摸索中。感謝您的答覆。 – Josh