Запросы к сервису wcf не авторизованы - PullRequest
1 голос
/ 23 августа 2011

Я хочу использовать службу wcf в моем приложении asp.net, которое использует встроенную проверку подлинности Windows, однако все запросы к моему Model.svc являются 401 Несанкционированными. Если я изменю 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>

1 Ответ

1 голос
/ 23 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...