在 WCF 中為多個 SharePoint 2010 伺服陣列加入支援和 CASI Kit
英文原文已於 2011 年 3 月 20 日星期日發佈
那天有人提出了一個有趣的問題,該問題與依照 Eric White 部落格 (https://blogs.msdn.com/b/ericwhite/archive/2010/06/18/establishing-trust-between-a-wcf-web-service-and-the-sharepoint-2010-security-token-service.aspx (可能為英文網頁)) 和 CASI Kit 第 2 部 (https://blogs.msdn.com/b/sharepoint_cht/archive/2010/12/17/azure-sharepoint-2.aspx) 設定的 WCF 應用程式能力有關。這些部落格中的設定修改了 WCF 的 web.config,使它包含發行者和 issuerMetadata 位址 (SharePoint 網站 URL) 的連結,以及 SharePoint 伺服陣列 STS 憑證的指紋。因此,如果將這些值編碼單一伺服陣列,單一 WCF 還會支援多個伺服陣列中來自 CASI Kit 的要求嗎?幸好,答案是肯定的,但是它還需要另一個設定位元。
WCF 中設定要在它與 SharePoint 伺服陣列之間建立信任的基本要素就是:
- 發行者的 SharePoint 網站 URL
- issuerMetadata 的 SharePoint 網站 URL
- STS 所用伺服陣列 Token 簽署憑證的指紋
結果前兩個根本不是問題,因為 CASI Kit 基底類別會以程式設計方式使用叫用 CASI Kit 元件的網站 URL 覆寫 web.config 中的那些值。如此一來,我們就可以從封鎖清單移除那兩個項目。最後一個項目很幸運地新增到 web.config 而不是做為單一項目。意思是它是以簡單的 <add> 標記新增,也就是說它支援新增多個 WCF 將支援的指紋。舉例來說,在我為兩個不同伺服陣列新增支援之後,WCF 的 web.config 看起來像下列:
<add thumbprint="2e074b9965abc3434c20ed0be8bfe82b03e5c9f9" name="farm2"/>
<add thumbprint="F53DE039BB2081E7DF6FEC03E8A644F3743A5A7C" name="app1"/>
如您所見,您可以一直將指紋新增到清單,盡情支援伺服陣列,而 CASI Kit 將幫您處理其餘部分。
這是翻譯後的部落格文章。英文原文請參閱 Adding Support for Multiple SharePoint 2010 Farms and the CASI Kit in Your WCF