Web应用程序,WCF服务和Sharepoint Web服务

时间:2012-07-23 19:11:39

标签: c# wcf web-services sharepoint authentication

好的,所以场景是这样的:

我有多个Web应用程序,它们使用wcf服务。现在我正在更改wcf服务以使用Sharepoint 2010 Web服务,即UserprofileService.asmx

网络应用程序 - > WCF服务 - > Sharepoint WebService

问题是如果我在wcf服务中使用以下代码,它可以与Sharepoint服务一起使用,并且当我从我的机器测试wcf服务时,我能够访问sharepoint userprofile服务中可用的方法。 / p>

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服务中不同用户的配置文件。我需要使用假冒吗?如果是,我怎么能在这里使用它。

1 个答案:

答案 0 :(得分:0)

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