Запросы к службе wcf неавторизованы

Я хочу использовать службу wcf в своем приложении asp.net, которое использует встроенную проверку подлинности Windows, однако все запросы к моему Model.svc имеют статус 401 Unauthorized. Если я изменю clientCredentialType="Windows" на clientCredentialType="Ntlm", каждый запрос будет неавторизованным 2 раза, а третий будет успешным.

Вот мой web.config:

<configuration>
  <appSettings>
  </appSettings>
  <connectionStrings/>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <authentication mode="Windows" />
  </system.web>
  <!--WCF Configuration-->
  <system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"/>
    <bindings>
      <webHttpBinding>
        <binding name="WebHttpBinding_IModel">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <client />
    <services>
      <service behaviorConfiguration="ServiceBehavior" name="Model">
        <endpoint address="" behaviorConfiguration="JsonBehavior" binding="webHttpBinding" bindingConfiguration="WebHttpBinding_IModel" contract="IModel">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="JsonBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
     </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

person wuhi    schedule 23.08.2011    source источник


Ответы (1)


2 раза несанкционированное и третье срабатывание является частью протокола. Так работает аутентификация NTLM. Это создает проблему? WCF предназначен для обработки таких сценариев, поэтому ваш вызов проверки подлинности WCF будет работать нормально.

person Sachin Nayak    schedule 23.08.2011
comment
Я хочу использовать аутентификацию Windows. в любом случае... я только что протестировал его на реальном IIS, и он просто работает. так что это была просто проблема с сервером разработки asp.net и windows-auth - person wuhi; 23.08.2011