। नेट 4.7 HTTP अनुरोधों के लिए TLS 1.2 के लिए चूक; हालांकि, कनेक्शन स्थापना के दौरान उपयोग किए जाने वाले वास्तविक टीएलएस संस्करण अलग -अलग हो सकते हैं। यह गाइड बातचीत के टीएलएस संस्करण का निर्धारण करने के लिए दो तरीकों को रेखांकित करता है।
विधि १: प्रतिबिंब
यह तकनीक SSL प्रोटोकॉल संस्करण प्राप्त करने के लिए आंतरिक गुणों और फ़ील्ड तक पहुंचने के लिए प्रतिबिंब का लाभ उठाती है। ध्यान दें कि यह आंतरिक एपीआई पर निर्भर करता है और भविष्य के .NET अपडेट के साथ बदल सकता है।
system.io.compression का उपयोग करके; System.net का उपयोग करना; System.net.security का उपयोग करना; System.reflection का उपयोग करना; System.Security.Authentication का उपयोग करना; System.security.cryptography का उपयोग करना; सिस्टम का उपयोग करना। // ... अन्य कोड ... ServicePointManager.SecurityProtocol = SecurityProtocolType.tls | SecurityProtocolType.tls11 | SecurityProtocolType.tls12 | SecurityProtocolType.tls13; // ... अन्य कोड ... Uri requesturi = नया uri ("https://somesite.com"); var अनुरोध = webrequest.createhttp (requesturi); // ... अन्य कोड ... उपयोग करना (var requeststream = request.getRequestStream ()) { // अनुरोध धारा मान्य; अब एसएसएल प्रोटोकॉल निकालें Sslprotocols sslprotocol = extractsslprotocol (requestStream); if (sslprotocol! = sslprotocols.none) { // SSLProtocol मान को संसाधित करें } } // ... AxtractsSlprotocol फ़ंक्शन (कार्यान्वयन यहां प्रदान किया जाएगा) ...] ] इस दृष्टिकोण में गैर-सार्वजनिक हैंडल और संरचनाओं के साथ काम करना शामिल है, जो इसे कम पोर्टेबल और संभावित रूप से अधिक जटिल बनाता है। (विस्तृत कार्यान्वयन जटिलता और संभावित अस्थिरता के कारण छोड़ा गया।)
using System.IO.Compression;
using System.Net;
using System.Net.Security;
using System.Reflection;
using System.Security.Authentication;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
// ... other code ...
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls |
SecurityProtocolType.Tls11 |
SecurityProtocolType.Tls12 |
SecurityProtocolType.Tls13;
// ... other code ...
Uri requestUri = new Uri("https://somesite.com");
var request = WebRequest.CreateHttp(requestUri);
// ... other code ...
using (var requestStream = request.GetRequestStream()) {
// Request stream validated; now extract SSL protocol
SslProtocols sslProtocol = ExtractSslProtocol(requestStream);
if (sslProtocol != SslProtocols.None) {
// Process the sslProtocol value
}
}
// ... ExtractSslProtocol function (implementation would be provided here) ...
] ]
यह जानकारी डेवलपर्स को उनके .NET अनुप्रयोगों द्वारा उपयोग किए जाने वाले सुरक्षा प्रोटोकॉल को समझने और प्रबंधित करने में मदद करती है। प्रतिबिंब का उपयोग करने और अप्रबंधित पुस्तकालयों के साथ बातचीत के साथ जुड़े निहितार्थों और संभावित जोखिमों पर सावधानीपूर्वक विचार करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3