0

IIS でホストされている WCF サービスがあり、UserName 認証を使用したいと考えています。私のクライアントは、.Net、PHP、および Delphi です。

SSL や証明書を使用したくありません。

どうやってやるの?

4

1 に答える 1

0

あなたのコメントによると、サーバー側で証明書を提供する意思がある場合、やりたいことは非常に簡単です。WCF によって実装される WS-Security 標準は、Web サービスのようなインターフェイスを実装するすべてのクライアントですぐに利用できる必要があります。

最小限のコードを使用した基本的で飾り気のないユーザー名認証の場合は、プロパティ構成オプションを設定するだけです

Windows ユーザー名を使用したくない場合 (あなたの質問は、誰もが Windows ユーザー名やパスワードを持っているわけではないことを暗示しています)、必要なアクションを実行するカスタム ユーザー名プロバイダーを指定できます。次のようなサービス動作構成をセットアップします。

<serviceCredentials>
  <serviceCertificate findValue="localhost" storeLocation="LocalMachine"
    x509FindType="FindBySubjectName" />
  <userNameAuthentication userNamePasswordValidationMode="Custom" 
    customUserNamePasswordValidatorType="MyService.Auth, MyService" />
</serviceCredentials>

次に、これを行うクラスを構築します。

public class Auth : UserNamePasswordValidator
{
    public override void Validate(string userName, string password)
    {
    }
}

FaultException検証が失敗した場合は、そのメソッドから何らかの種類をスローする必要があります。それ以外の場合、WCF は組み合わせが成功したと見なします。

于 2012-04-20T13:50:44.740 に答える