2013-08-26 4 views
9

मैंने कुछ नमूना कोड डाउनलोड किया है जो थोड़ा पुराना है।System.Net.CertificatePolicy ServerCertificateValidationCallback सभी प्रमाणपत्र नीतियों को स्वीकार करें

चेतावनी 1 'System.Net.ServicePointManager:

System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy(); 

यह निम्न चेतावनी देता है: यह निम्नलिखित कॉल बाद में कोड में पर

public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy 
{ 
    public TrustAllCertificatePolicy() 
    { } 

    public bool CheckValidationResult(ServicePoint sp, 
       System.Security.Cryptography.X509Certificates.X509Certificate cert, 
       WebRequest req, 
       int problem) 
    { 
     return true; 
    } 
} 

: यह निम्नलिखित वर्ग है .CertificatePolicy 'अप्रचलित है:' इस प्रकार के लिए प्रमाणपत्र नीति को अप्रचलित कर दिया गया है, कृपया इसके बजाय ServerCertificateValidationCallback का उपयोग करें। http://go.microsoft.com/fwlink/?linkid=14202 '

समकक्ष कार्यक्षमता प्राप्त करने की वर्तमान प्रक्रिया क्या है?

मैंने एमएसडीएन पर article पढ़ा है लेकिन मुझे यह सुनिश्चित करने के बारे में अनिश्चितता है कि कैसे परिवर्तित किया जाए? यह एक कक्षा पुस्तकालय के लिए है। अगर ऐसा लगता है कि मैंने पर्याप्त शोध नहीं किया है, लेकिन जब मैं एसएसएल प्रमाण पत्र की बात करता हूं, तो मैं माफी माँगता हूं, यह मेरे दायरे से थोड़ा सा है। कोई भी मदद बहुत ही सराहनीय होगी!

+1

ऐसा लगता है कि हम एक ही उदाहरण कोड का उपयोग करते हैं, पूछने के लिए धन्यवाद :) – CularBytes

उत्तर

14

अपने कोड में निम्नलिखित वर्ग शामिल करें

public static class SSLValidator 
     { 
      private static bool OnValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, 
                 SslPolicyErrors sslPolicyErrors) 
      { 
       return true; 
      } 
      public static void OverrideValidation() 
      { 
       ServicePointManager.ServerCertificateValidationCallback = 
        OnValidateCertificate; 
       ServicePointManager.Expect100Continue = true; 
      } 
     } 

तो इससे पहले कि आप सेवा कॉल करने के निम्नलिखित फोन लेकिन उत्पादन आप वास्तविक प्रमाणपत्र

SSLValidator.OverrideValidation(); 

या जब इस कोड को दूर करने के लिए सावधान रहना होगा आप इसे केवल

#if DEBUG 

      SSLValidator.OverrideValidation(); 
#endif 
+0

इस समाधान के आवेदन पर कोई नकारात्मक प्रभाव नहीं पड़ा। जवाब के लिए धन्यवाद। – Oxymoron

+0

क्या आप वर्ग 'SSLValidator' में कोड की अंतिम पंक्ति समझाते हैं। 'ServicePointManager.Expect100Continue' भाग। 'Expect100Continue' क्या है? – Oxymoron

+1

आपके पास यहां विस्तृत स्पष्टीकरण है http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.expect100continue.aspx –

2

का उपयोग करने के लिए इसका उपयोग करने के लिए निम्नलिखित कर सकते हैं I अन्य वेब सेवाओं से कनेक्ट करते समय निम्नलिखित।

//workaround for SSL certificate issue 
ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, sslPolicyErrors) => { return true; }; 
संबंधित मुद्दे