2

現在、Windows認証(C#で記述されたプログラム)でnetTcpBindingを使用しています。ドメイン認証から離れて(ドメインに存在しない新しいクライアントを追加する)、ユーザー名/パス認証を使用して証明書のセキュリティを設定することを検討しています。これまで読んできたことから、必ずしもクライアント証明書は必要ありません(これは良いことです。すべてのクライアントにサービスの証明書をインストールすることはできません)。私の考えは、信頼できるCAからの証明書を使用して安全なWebサイトに移動するのと同じ方針です。信頼できることを認識し、質問したり面倒なことをしたりせず、証明書を受け入れるだけです。

これまでのところ、サービス証明書を設定しています(GoDaddyからのワイルドカード証明書があります)が、クライアント証明書を必要としないようにapp.configファイルにどのような変更を加える必要があるのか​​わかりません。

サービスapp.config:

<serviceBehaviors>
   <behavior name="">
     <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
     <serviceDebug includeExceptionDetailInFaults="false" />
     <serviceCredentials>
       <clientCertificate>
         <authentication certificateValidationMode="None" revocationMode="NoCheck" />
       </clientCertificate>
       <serviceCertificate findValue="*.xxxxxx.com"
                           storeLocation="LocalMachine"
                           storeName="TrustedPublisher"
                           x509FindType="FindBySubjectName" />
     </serviceCredentials>
   </behavior>
 </serviceBehaviors>

クライアントapp.config:

      <security mode="Transport">
        <transport clientCredentialType="Certificate" protectionLevel="EncryptAndSign" />
        <message clientCredentialType="UserName" />
      </security>

ユーザー名の部分にカスタムバリデーターを設定する必要があることは承知していますが、一度に1ステップずつ計算します。ありがとう、そしてあなたがさらなる詳細を必要とするならば私に知らせてください。

4

1 に答える 1

3

clientCredentialType を None に変更します。また、サーバー構成でこれを行います。

于 2012-04-30T17:29:27.873 に答える