मैं बस XML सुरक्षा सीखना शुरू कर रहा हूं। हमारे पास वीएस -2005 & एएसपी.Net 2.0 है। मैं एक्सएमएल को बाहरी यूआरएल में भेजना चाहता हूं और इसे एन्क्रिप्ट किया जाना चाहिए। मैं ठीक से कर रहा हूं कि एमएसडीएन लेख ms229744 & ms229943 कर रहे हैं, लेकिन जब DecryptDocument() विधि करते हैं, तो मैं "डिक्रिप्शन कुंजी पुनर्प्राप्त करने में असमर्थ" प्राप्त करता रहता हूं। मैं अपने एसएसएल वेब सर्टिफिकेट का उपयोग कर रहा हूं, और मैं वर्तमान में XML पर डिजिटल हस्ताक्षर करने के लिए X509 प्रमाणपत्र का उपयोग करता हूं और यह ठीक काम करता है।X509 प्रमाण पत्र एन्क्रिप्शन/डिक्रिप्शन
मैंने किसी और से एक अलग दुकान से यह कोशिश करने के लिए भी कहा और उन्हें एक ही त्रुटि मिल रही है। X509 डिक्रिप्शन विधियों के साथ कोई दस्तावेजी समस्या है? नीचे दिए गए टेस्ट कोड में, मैं एक्सएमएल को किसी अन्य वेब पेज पर पोस्ट कर रहा हूं जो एक्सएमएल को डिक्रिप्ट करने का प्रयास कर रहा है। जो मुझे समझ में नहीं आता है यह है कि DecryptDocument() विधि कैसे काम कर सकती है अगर यह जांचने के लिए भी जांच नहीं करता कि सार्वजनिक कुंजी एम्बेडेड है या नहीं। क्या यह समस्या है? यदि हां, तो मैं यह सुनिश्चित करने के लिए कैसे जांच करूं कि यह एक्सएमएल में एम्बेडेड है? किसी भी मदद की सराहना की है। धन्यवाद!
Private Function EncryptXml(ByVal xmlDoc As XmlDocument, ByVal Cert As X509Certificates.X509Certificate2) As XmlDocument
Dim dataNodes As XmlNodeList = xmlDoc.SelectNodes("Agency")
If dataNodes.Count <> 1 Then
Return Nothing
End If
Dim elementToEncrypt As XmlElement = CType(xmlDoc.GetElementsByTagName("Agency")(0), XmlElement)
Dim eXml As New EncryptedXml()
Dim Key As RSACryptoServiceProvider = CType(Cert.PrivateKey, RSACryptoServiceProvider)
Dim edElement As EncryptedData = eXml.Encrypt(elementToEncrypt, Cert)
EncryptedXml.ReplaceElement(elementToEncrypt, edElement, False)
Return xmlDoc
End Function
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If Request.Form("hdnSignedXML") IsNot Nothing Then
Dim strXML As String = Request.Form("hdnSignedXML")
Dim xmlDoc As New XmlDocument
xmlDoc.LoadXml(strXML)
xmlDoc.PreserveWhitespace = True
Response.ContentType = "text/plain"
Response.Write(strXML)
Dim exml As New Xml.EncryptedXml(xmlDoc)
exml.DecryptDocument()
xmlDoc.Save("C:/inetpub/TestExampleDecrypted.xml")
Response.End()
End If
End Sub
जेपी