2012-04-17 14 views
0

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

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

どうすればいいですか?

+0

http://stackoverflow.com/questions/379526/wcf-username-without-certificate? –

+0

コメントありがとうございます。認定資格でそれを行うことはできますか? –

+0

はい、サーバー側の証明書を提供したい場合は、ほとんど何でもできます。私は詳細を記した回答を投稿します。 –

答えて

0

あなたのコメントによれば、サーバー側で証明書を提供したいなら、あなたがしたいことはとても簡単です。 WCFによって実装されたWS-Security標準は、Webサービスのようなインターフェイスを実装するすべてのクライアントがすぐに利用できるようにする必要があります。最小限のコードで、あなただけの、たとえば、プロパティの設定オプションを設定するために必要な基本的な、飾り気のないユーザ名認証のために

、: http://msdn.microsoft.com/en-us/library/ms752233.aspx

は、Windowsのユーザー名を使用したくない場合は(あなたの質問誰もがWindowsのユーザー名やパスワードを持っているわけではないことを意味しています)、必要なアクションを実行するカスタムのユーザー名プロバイダを提供できます。これを行うクラス構築次に

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

::次のようになり、サービスの動作構成を設定し、検証が失敗した場合、あなたはその方法からFaultExceptionのいくつかの並べ替えをスローする必要があり

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

を。それ以外の場合は、WCFはその組み合わせが成功したとみなします。

+0

ありがとうございます。私のサービスはインターネット上でホストされており、何もセットアップできません。それをインストールせずにx509認証を使用する方法はありますか? –

関連する問題