0

基本的な HTTP 認証モードを使用する WebHttpBinding サービスがありますが、何らかの奇妙な理由で、提供されたユーザー名/パスワードを Windows アカウントに対して検証します。

この問題を報告する他の投稿も見つけましたが、この状況に対する回答はありません。

  <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>
4

2 に答える 2

0

この構成は機能しません。ただし、この問題には回避策があります。

  • Login()メソッドを作成し、すべてのサービスメソッドに渡す認証トークンを使用します。
  • カスタム検証モードを使用し、Membership.ValidateUser()を使用してユーザー名\パスワードをコードで検証します
于 2011-02-21T09:47:37.507 に答える
0

トークンは、ログインまたはカスタム http 認証モジュールを渡しました。

カスタム認証モジュールへのリンクは次のとおりです。 http://custombasicauth.codeplex.com/

トークン ベースの場合は、OAuth 実装を使用できます。

于 2011-10-27T12:31:23.887 に答える