本文介绍了用于ws2007FederationHttpBinding和Windows身份验证的WCF服务器配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我必须在服务器上托管的服务上实施 Windows身份验证。 我正在使用 ws2007FederationHttpBinding。 我正在使用 ws2007FederationHttpBinding绑定,因为我从ADFS服务器接收令牌。 以下是我的服务器配置: web.config <身份验证模式= Windows /> < ws2007FederationHttpBinding> < binding name = SamlTokenCustomStsBindingConfig> < security mode = Message> < message EstablishmentSecurityContext = false> < / message> < / security> < / binding> < / ws2007FederationHttpBinding> <服务名称= XXX.Server behaviorConfiguration = ClaimsAwareServiceBehavior> <端点地址= http://serverurl/ServerServices.svc binding = ws2007FederationHttpBinding contract = ServerInterfaces.IServer bindingConfiguration = SamlTokenCustomStsBindingConfig /> <端点地址= mex binding = mexHttpBinding contract = IMetadataExchange /> < / service> <行为名称= ClaimsAwareServiceBehavior> < serviceMetadata httpGetEnabled = true /> < serviceDebug includeExceptionDetailInFaults = false /> < / behavior> 下面是我的IIS配置: 根据错误,我们在 ws2007FederationHttpBinding中没有 Transport或 TransportCredentialOnly 。 所以我无法继续。解决方案您应该在下面的代码行中对此进行注释以避免在您的问题中提到该错误: <端点地址= mex binding = mexHttpBinding contract = IMetadataExchange /> 但是要为WCF服务实现ADFS,需要几个前提条件,这些前提条件不能发布为答案,而仅仅是为了 Windows 身份验证模式,通过以下步骤更容易使用 basicHttpBinding 。 因此对于ADFS实施,请看一下: 1- 身份解决方案中的ADFS-在身份解决方案中使用Active Directory联合身份验证服务2.0。 2- 联合安全性:如何设置和调用由ADFS 2.0保护的WCF服务 3- ADFS可保护Windows Server AppFabric中托管的WCF和工作流服务。 I have to implement "Windows Authentication" on a service hosted on Server. I am using "ws2007FederationHttpBinding".I am using "ws2007FederationHttpBinding" binding since I am receiving token from my ADFS server.Below are my server configuration:web.config<authentication mode="Windows" /> <ws2007FederationHttpBinding> <binding name="SamlTokenCustomStsBindingConfig"> <security mode="Message"> <message establishSecurityContext="false"> </message> </security> </binding> </ws2007FederationHttpBinding> <service name="XXX.Server" behaviorConfiguration="ClaimsAwareServiceBehavior"> <endpoint address="http://serverurl/ServerServices.svc" binding="ws2007FederationHttpBinding" contract="ServerInterfaces.IServer" bindingConfiguration="SamlTokenCustomStsBindingConfig" /> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> <behavior name="ClaimsAwareServiceBehavior"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> Below is my IIS configuration: Inspite of all the configuration I am unable to access my service. can anyone notify where I am making mistake or have I missed any configuration.I am receiving below error when I am trying to access my service.As per error we don't have "Transport" or "TransportCredentialOnly" in "ws2007FederationHttpBinding".So I am unable to move further. 解决方案 You should comment this below line of code to avoid that mentioned error in your question:<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />but for implementing ADFS for WCF service needs several preconditions that can't be posted as answer but just for Windows authenticate mode this is easier to use basicHttpBinding by little steps.so for ADFS implementation please take a look at:1- ADFS in Identity Solutions - Using Active Directory Federation Services 2.0 in Identity Solutions.2- Federated Security: How to setup and call a WCF service secured by ADFS 2.03- ADFS to secure WCF and Workflow Services hosted in Windows Server AppFabric. 这篇关于用于ws2007FederationHttpBinding和Windows身份验证的WCF服务器配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!