다음을 통해 공유


在 WCF 中添加对多个 SharePoint 2010 场和 CASI 工具包的支持

原文发布于 2011 年 3 月 20 日(星期日)

那天有人提出了有关 WCF 应用程序功能的一个很有意思的问题,有关其配置的信息在 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 工具包第 2 部分 (https://blogs.msdn.com/b/sharepoint_chs/archive/2010/12/17/azure-sharepoint-2.aspx) 中都有介绍。这些博客中的配置介绍修改 WCF 的 web.config 以便其包含指向 issuer 和 issuerMetadata 地址(SharePoint 网站的 Url)以及 SharePoint 场 STS 证书指纹的链接。所以,如果针对单个场对这些值进行编码,单个的 WCF 是否可以支持来自多个场的 CASI 工具包的请求?很高兴地说,答案是肯定的,只是还需要多一点配置。

在 WCF 中要建立其与 SharePoint 场之间的信任所需配置的基本元素有:

  • issuer 的 SharePoint 网站 Url
  • issuerMetadata 的 SharePoint 网站 Url
  • STS 使用的场令牌签名证书的指纹

前两项最终证明没有问题,因为 CASI 工具包基类会通过编程的方式使用从其调用 CASI 工具包组件的网站 Url 替代 web.config 中的那些值。因此我们从问题表中移除这两项。幸运的是,最后一项并不是作为单个项目添加到 web.config 中,而实际上是作为潜在项目数组中的一员。也就是使用简单的 <add> 标记进行添加,意味着它支持添加 WCF 将支持的多个指纹。因此下面的示例就是我向 WCF 添加对两个不同场的支持后,其 web.config 看起来的样子:

<add thumbprint="2e074b9965abc3434c20ed0be8bfe82b03e5c9f9" name="farm2"/>
<add thumbprint="F53DE039BB2081E7DF6FEC03E8A644F3743A5A7C" name="app1"/>

显而易见,您可以不断地向列表添加指纹,以支持您所需数量的场,而 CASI 工具包则为您处理余下事务。

这是一篇本地化的博客文章。请访问 Adding Support for Multiple SharePoint 2010 Farms and the CASI Kit in Your WCF 以查看原文