WCF WebHttpBinding с аутентификацией поставщика членства - PullRequest
0 голосов
/ 20 февраля 2011

У меня есть служба WebHttpBinding, которая использует основной режим HTTP-аутентификации, однако по какой-то странной причине он проверяет предоставленное имя пользователя / пароль для учетных записей Windows, хотя я указал userNamePasswordValidationMode = "MembershipProvider".

Я обнаружил и другие сообщения, сообщающие об этой проблеме, но ответа на эту ситуацию не дано.

  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="WebBinding">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Basic" />
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior name="EPWeb">
          <webHttp helpEnabled="true" />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="SqlProvider" />
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="ServiceBehavior" name="Foo">
        <endpoint address="Test" behaviorConfiguration="EPWeb"
            binding="webHttpBinding" bindingConfiguration="WebBinding"
            contract="Foo.IService" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:3456/" />
          </baseAddresses>
        </host>
      </service>
    </services>
  </system.serviceModel>

Ответы [ 2 ]

0 голосов
/ 27 октября 2011

Токен прошел вход в систему или пользовательский модуль http-аутентификации.

Вот ссылка на пользовательский модуль аутентификации.http://custombasicauth.codeplex.com/

Для токенов можно использовать реализацию OAuth.

0 голосов
/ 21 февраля 2011

Эта конфигурация не будет работать.Но есть обходные пути для этой проблемы:

  • Создание метода Login () и использование токена аутентификации, который вы передаете каждому методу службы.
  • Использование пользовательского режима проверки и проверка имени пользователя \пароль по коду, используя Membership.ValidateUser ()
...