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