2011-01-18 13 views
2

私はクライアントが私のWindowsアプリケーションと私のウェブサイトであるwsHttpBindingを持つWCFサービスを持っています。それらのクライアントは両方とも私のサービスの消費者です。私のサービスでは、クライアントの認証にMessageセキュリティとUserNameのclientCredentialTypeを使用しました。私はこの認証にどんな証明書も使いたくない。どうやって?あなたは私にこの目的のために他の解決策を提案しますか?メッセージセキュリティとUserName clientCredentialTypeをWCFサービスで証明書なしで使用する方法?

答えて

1

ありがとうございます。私はあなたの例を使用しましたが、私はこのエラーを受け取りました:

このCustomBindingにはTransportBindingElementがないため、このバインディングでスキームを計算できません。すべてのバインディングには、TransportBindingElementから派生する少なくとも1つのバインディング要素が必要です。

と私の質問:私はこのソリューションのVS2010でどのプロジェクトの種類を使用するのですか?プロジェクト内のWCFサービスライブラリ、またはWCFサービスのWebサイト。どれ?

お返事ありがとうございます。

+1

私はのClearUsernameBindingで私の問題を解決しました。ありがとうございました。 WCFサービスライブラリは、Webサービス、Windowsサービス、またはホスティングアプリケーションの一部として展開できるコンパイルされたコンポーネントです。 WebサイトのWCFサービスアプリケーションは、ASP.NET Webサービスのような直接的なWebサービスアプリケーションです。 –

3

UserNameクライアントを使用するWsHttpBindingメッセージセキュリティは、サーバー証明書を要求します。唯一の選択肢はWindowsクライアントの資格情報を使用することですが、この場合、クライアントとサービスは同じADドメイン(または信頼できるドメイン)内になければなりません。メッセージ(暗号化と署名)を保護するには、そのようなインフラストラクチャが必要です。

編集:あなたのコメントに基づいて

あなたが唯一insecuredチャネルを介してクライアントの資格情報を輸送するのUsernameTokenプロファイルを使用する場合は、メッセージセキュリティを必要としません。これはWCF 4(および特別なKBを持つ古いバージョン)で可能です。このカスタムバインドを試してみてください。

<customBinding> 
    <binding name="UsernamePasswordOverHttp"> 
    <textMessageEncoding messageVersion="Soap11" /> 
    <security 
     authenticationMode="UserNameOverTransport" 
     messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" 
     allowInsecureTransport="true" /> 
    <httpTransport /> 
    </binding> 
</customBinding> 

このようなサービスでは、WSDLの自動生成に問題がある可能性があることに注意してください。

編集2:

別の可能性は、ClearUserNameBidningを使用することです。

+0

に感謝します。しかし、私は私のサービスから使用する多くのユーザーがいます。私はADドメイン –

+0

を使用することはできませんので、サーバー証明書を使用するか、メッセージセキュリティをまったく使用しないでください。 –

+0

私は自分のクライアントに対してのみ認証と承認を使いたいと思っています。私にとって重要ではないメッセージの暗号化と署名。あなたのアプローチは何ですか? –

関連する問題