0

Web サービスを利用しながらクライアントを認証したいと考えています。ユーザー名とパスワードを渡すことができる ClientCredential というクライアントで公開されているプロパティが表示されます。この情報を WCF Web サービスに渡す方法と、ユーザー ID とパスワードを認証する方法を教えてください。

4

1 に答える 1

0

ユーザー名/パスワードで ClientCredential を使用する場合は、クライアント側の app.config で次のように構成する必要があります。

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="UserNameSecurity">
          <security mode="Message">
            <message clientCredentialType="UserName"/>
          </security>
        </binding>
      </basicHttpBinding>

次に、クライアントのエンドポイントでこのバインディング構成「UserNameSecurity」を使用する必要があります。

    <client>
      <endpoint address="http://localhost:8888/MyService"
                binding="basicHttpBinding" bindingConfiguration="UserNameSecurity"
                contract="IMyService" />

サーバー側では、Windows (Active Directory ドメイン) を使用するか、ASP.NET メンバーシップ プロバイダー (および関連するユーザー データベース) を使用して、ユーザーを認証する方法を定義する必要があります。

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Default">
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"/>
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>

この場合、ユーザー名とパスワードは ASP.NET メンバーシップ データベースに対してチェックされます。

しかし、これがすべて社内のイントラネット上にある場合は、統合された Windows セキュリティを全体的に使用したいと思います。セットアップと使用がはるかに簡単で、信頼性と安全性が高いからです。しかし、それは社内のファイアウォールの内側でしか機能しません。

マルク

于 2009-07-29T13:48:57.863 に答える