2009-07-29 4 views
0

私は、Webサービスを消費しながら、クライアントを認証します。私たちは、ユーザー名とパスワードを渡すことができているClientCredentialと呼ばれるクライアントに公開されたプロパティを参照してください。どのように私は私のWCFのWebサービスにこの情報を渡すことができますし、どのように私は、ユーザーIDとパスワードを認証することができますか?

答えて

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を使用して(アクティブディレクトリドメイン)を使用するか、AS

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

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

これは、イントラネット上のすべての場合には、内部の会社で、私はしかし、むしろ、すべての周りに統合されたWindowsのセキュリティを使用する - それは、セットアップと使用にはるかに簡単に、そしてより信頼性と安全です。しかし、会社のファイアウォールの内側では、会社内でのみ動作します。

マーク