WCF服务 - 在Web配置中模拟固定帐户

时间:2013-04-09 11:49:24

标签: wcf web-config impersonation

我正在尝试编写将通过Active Directory服务进行搜索的WCF服务。我想将此服务设置为使用我的固定凭据,因此我的密码不会过期。

这就是web.config的样子:

 <?xml version="1.0"?>
 <configuration>
   <system.web>
     <compilation debug="true" targetFramework="4.0" />
     <authorization>
       <allow users="?"/>
     </authorization>
     <authentication mode="Windows"/>
     <identity impersonate="true" userName="mylogin" password="mypass" />
   </system.web>
   <system.serviceModel>
     <services>
       <service name="Mochrie.MyService" behaviorConfiguration="asdf">
         <endpoint address="" binding="basicHttpBinding" bindingConfiguration="httpBinding" contract="Mochrie.IMyService" />
       </service>
     </services>


     <bindings>
       <basicHttpBinding>
         <binding name="httpBinding">
           <security mode="TransportCredentialOnly">
             <transport clientCredentialType="Basic" />
           </security>
         </binding>
       </basicHttpBinding>
     </bindings>


     <behaviors>
       <serviceBehaviors>
         <behavior name="asdf">
           <serviceMetadata httpGetEnabled="true"/>
           <serviceDebug includeExceptionDetailInFaults="false"/>
         </behavior>
       </serviceBehaviors>
     </behaviors>
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
   </system.serviceModel>
   <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
   </system.webServer>
 </configuration>

不幸的是,我收到了众所周知的错误并且在几天之内就陷入了困境。 在尝试浏览时:http://localhost/Mochrie/MyService.svc?wsdl

The authentication schemes configured on the host ('IntegratedWindowsAuthentication') do not allow those configured on the binding 'BasicHttpBinding' ('Basic'). Please ensure that the SecurityMode is set to Transport or TransportCredentialOnly. Additionally, this may be resolved by changing the authentication schemes for this application through the IIS management tool, through the ServiceHost.Authentication.AuthenticationSchemes property, in the application configuration file at the <serviceAuthenticationManager> element, by updating the ClientCredentialType property on the binding, or by adjusting the AuthenticationScheme property on the HttpTransportBindingElement.

是否有人有机会解决此问题并正确设置wcf服务?

1 个答案:

答案 0 :(得分:0)

尝试

<binding name="MyBinding">

  <security mode="TransportCredentialOnly">

    <transport clientCredentialType="Windows" />

  </security>

</binding>

<binding name="MyBinding">

  <security mode="TransportCredentialOnly">

    <transport clientCredentialType="Ntlm" />

  </security>

</binding>

注意:您可以关闭模​​拟,但改为更改IIS AppPool(或WinService帐户)身份