2012-07-23 283 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

解決方案很簡單。創建兩個單獨的綁定,並做到了這一點。 :)