2011-07-26 3 views
3

익명 액세스가 WCF 서비스의 가상 디렉터리에서 사용 및 통합 인증을 사용하지하더라도, 난 여전히 오류가 발생합니다 :익명 인증을 사용하여 HTTPS WCF 서비스를 호출 하시겠습니까?

The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Negotiate,NTLM'.

이 클라이언트 바인딩 구성의 보안 정의는 모습입니다 같은 :

<security mode="Transport"> 
    <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> 
    <message clientCredentialType="None" negotiateServiceCredential="false" /> 
</security> 

그리고 엔드 포인트 정의 :

<endpoint address="https://url.com/Service.svc" 
      binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService" 
      contract="IService" name="WSHttpBinding_IService"> 
      <identity> 
       <servicePrincipalName value="spn" /> 
      </identity> 
</endpoint> 

나는 이미 추가 시도했다 :

client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; 

하지만 효과가없는 것 같습니다.

IIS에서 변경해야 할 것이 있습니까?

[편집]

서비스 구성 :

<bindings> 
    <wsHttpBinding> 
     <binding name="wsSecureBinding"> 
      <security mode="Transport"> 
       <transport clientCredentialType="None" /> 
      </security> 
     </binding> 
    </wsHttpBinding> 
</bindings> 

그것은 기본적으로 Windows 자격 증명을 기대 :

<behaviors> 
    <endpointBehaviors> 
     <behavior name="defaultBehavior"/> 
    </endpointBehaviors> 
    <serviceBehaviors> 
     <behavior name="metadataSupport"> 
     <serviceMetadata httpsGetEnabled="true" httpsGetUrl=""/> 
     <useRequestHeadersForMetadataAddress> 
      <defaultPorts> 
       <add scheme="https" port="443" /> 
      </defaultPorts> 
     </useRequestHeadersForMetadataAddress> 
     </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="ServiceLibrary.Service" 
      behaviorConfiguration="metadataSupport"> 
     <endpoint address="" 
       binding="wsHttpBinding" 
       bindingConfiguration="wsSecureBinding" 
       contract="ServiceLibrary.IService"/> 
     <endpoint address="mex" 
       binding="wsHttpBinding" 
       bindingConfiguration="wsSecureBinding" 
       name="mexHttps" 
       contract="IMetadataExchange" /> 
    </service> 
</services> 
<bindings> 
    <wsHttpBinding> 
     <binding name="wsSecureBinding"> 
     <security mode="Transport"/> 
     </binding> 
    </wsHttpBinding> 
</bindings> 
+0

서비스 측면에서 어떤 바인딩 구성을 사용하고 있습니까? –

+0

서비스 구성을 추가했습니다. – ilitirit

답변

6

은에 서비스에 바인딩 구성을 수정합니다.

관련 문제