2012-07-23 184 views
0

好了,所以情况是这样的:Web应用程序,WCF服务和Sharepoint Web服务

我有多个Web应用程序,它消耗的WCF服务。现在我想提出一个改变WCF服务消费的SharePoint 2010的Web Service即UserprofileService.asmx

Web应用程序 - > WCF服务 - >的Sharepoint的WebService

而问题是,如果我使用下面的代码在wcf服务中,它可以与Sharepoint服务一起正常工作,并且当我从我的机器测试wcf服务时,我可以访问sharepoint userprofile服务中可用的方法。

C#

 service.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; 
     service.ChannelFactory.Credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials; 

的Web.config

<security mode="TransportCredentialOnly"> 
<transport clientCredentialType="Ntlm" proxyCredentialType="None" 
realm="" /> 
<message clientCredentialType="UserName" algorithmSuite="Default" /> 
</security> 

但我不再能够从我的web应用程序调用WCF服务作为Web应用程序使用下面的。

<security mode="Message"> 
      <transport clientCredentialType="Windows" proxyCredentialType="None" realm=""> 
       <extendedProtectionPolicy policyEnforcement="Never"/> 
      </transport> 
      <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" establishSecurityContext="true"/> 
      </security> 

我需要一种方法以这样的方式来配置WCF服务,它仍然能够与所有现有的应用程序交谈,并能开口说话到SharePoint服务在同一时间。

最重要的是我想使用WCF服务在其下运行的服务帐户(例如:b2 \ deltaUser)访问共享点userprofile服务中不同用户的配置文件。我需要使用模拟吗?如果是的话,我如何在这里使用它。

+0

这听起来像它可能是一个“双跳”问题的情况。 – 2012-07-23 21:14:14

回答

0

解决方案很简单。创建两个单独的绑定,并做到了这一点。 :)