2012-01-13 33 views
6

प्रदान नहीं किया गया है मैं सुरक्षा के साथ डब्ल्यूसीएफ सेवा को कॉन्फ़िगर करने की कोशिश कर रहा हूं। मैंने स्थानीय कंप्यूटर \ व्यक्तिगत प्रमाणपत्र में संग्रहीत 2 प्रमाण पत्र (सर्वर और क्लाइंट पक्ष के लिए) उत्पन्न किए हैं। मेरे विन्यास है:अपवाद: क्लाइंट प्रमाणपत्र

सर्वर:

<netTcpBinding> 
    <binding name="defaultBinding"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Certificate"/> 
     </security> 
    </binding> 
</netTcpBinding> 

<service name="..." behaviorConfiguration="serviceBehavior"> 
    <endpoint address="..." binding="netTcpBinding" bindingConfiguration="defaultBinding" contract="..."> 
     <identity> 
     <dns value="ClientSide"/> 
     </identity> 
    </endpoint> 
</service> 

<behavior name="serviceBehavior"> 
    <serviceCredentials> 
     <serviceCertificate storeLocation="LocalMachine" storeName="My" findValue="ServerSide" x509FindType="FindBySubjectName"/> 
     <clientCertificate> 
      <authentication certificateValidationMode="None" revocationMode="NoCheck"/> 
     </clientCertificate> 
    </serviceCredentials> 
<behavior> 

ग्राहक:

<netTcpBinding> 
    <binding name="defaultBinding"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Certificate"/> 
     </security> 
    </binding> 
</netTcpBinding> 

<endpoint name="..." binding="netTcpBinding" bindingConfiguration="defaultBinding" contract="..." 
      behaviorConfiguration="endpointBehavior"> 
    <identity> 
    <dns value="ServerSide"/> 
    </identity> 
</endpoint> 

<behavior name="endpointBehavior"> 
    <clientCredentials> 
     <serviceCertificate> 
      <authentication certificateValidationMode="None" revocationMode="NoCheck"/> 
     </serviceCertificate> 
     <clientCertificate storeLocation="LocalMachine" storeName="My" findValue="ClientSide" x509FindType="FindBySubjectName"/> 
    </clientCredentials> 
<behavior> 

मैं अपवाद हो रही है: क्लाइंट प्रमाणपत्र प्रदान नहीं की है। क्लाइंट क्रेडेंशियल

में क्लाइंट प्रमाणपत्र निर्दिष्ट करें मैंने कई ट्यूटोरियल की कोशिश की है, लेकिन उनमें से कोई भी काम नहीं करता है। कोई उपाय?

उत्तर

6

उत्तर वास्तव में अपवाद में है। आपके पास क्लाइंट प्रमाणपत्र नहीं है। आप इस

<clientCredentials> 
     <serviceCertificate> 
      <authentication certificateValidationMode="None" revocationMode="NoCheck"/> 
     </serviceCertificate> 
     <clientCertificate storeLocation="LocalMachine" storeName="My" findValue="ClientSide" x509FindType="FindBySubjectName"/> 
    </clientCredentials> 

साथ क्लाइंट प्रमाणपत्र के लिए एक सेवा प्रमाण पत्र को परिभाषित लेकिन क्या आप वास्तव में किया जाना चाहिए ग्राहक

<system.serviceModel> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="endpointBehavior"> 
      <clientCredentials> 
       <clientCertificate storeLocation="LocalMachine" storeName="My" findValue="ClientSide" x509FindType="FindBySubjectName" /> 
       <serviceCertificate> 
        <authentication certificateValidationMode="None" revocationMode="NoCheck" /> 
       </serviceCertificate> 
      </clientCredentials> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
</system.serviceModel> 

के लिए क्लाइंट प्रमाणपत्र को परिभाषित किया गया है यह कम से कम अपने The client certificate is not provided. Specify a client certificate in ClientCredentials अपवाद का समाधान करना चाहिए।