當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET SignedXml.CheckSignatureReturningKey方法代碼示例

本文整理匯總了VB.NET中System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey方法的典型用法代碼示例。如果您正苦於以下問題:VB.NET SignedXml.CheckSignatureReturningKey方法的具體用法?VB.NET SignedXml.CheckSignatureReturningKey怎麽用?VB.NET SignedXml.CheckSignatureReturningKey使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Security.Cryptography.Xml.SignedXml的用法示例。


在下文中一共展示了SignedXml.CheckSignatureReturningKey方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: Main

'
' This example signs a file specified by a URI 
' using a detached signature. It then verifies  
' the signed XML.
'
Imports System.Security.Cryptography
Imports System.Security.Cryptography.Xml
Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Xml


Class XMLDSIGDetached


    <STAThread()> _
    Overloads Shared Sub Main(ByVal args() As String)
        Dim request As WebRequest = WebRequest.Create("http://www.microsoft.com")
        ' If required by the server, set the credentials.
        request.Credentials = CredentialCache.DefaultCredentials
        ' Get the response.
        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
        ' Display the status.
        Console.WriteLine(response.StatusDescription)
        ' Get the stream containing content returned by the server.
        Dim dataStream As Stream = response.GetResponseStream()
        ' Open the stream using a StreamReader for easy access.
        Dim reader As New StreamReader(dataStream)
        ' Read the content.
        Dim responseFromServer As String = reader.ReadToEnd()
        Dim sw As StreamWriter = File.CreateText("C:\\temp\\mscom.htm")
        sw.Write(responseFromServer)
        sw.Close()

        ' Cleanup the streams and the response.
        reader.Close()
        dataStream.Close()
        response.Close()

        ' The URI to sign.
        Dim resourceToSign As String = "file://C:/temp/mscom.htm"

        ' The name of the file to which to save the XML signature.
        Dim XmlFileName As String = "xmldsig.xml"

        Try

            ' Generate a DSA signing key.
            Dim DSAKey As New DSACryptoServiceProvider()

            Console.WriteLine("Signing: {0}", resourceToSign)

            ' Sign the detached resourceand save the signature in an XML file.
            SignDetachedResource(resourceToSign, XmlFileName, DSAKey)

            Console.WriteLine("XML signature was succesfully computed and saved to {0}.", XmlFileName)

            ' Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...")

            'Verify the XML signature in the XML file.
            Dim result As Boolean = VerifyDetachedSignature(XmlFileName)

            ' Display the results of the signature verification to 
            ' the console.
            If result Then
                Console.WriteLine("The XML signature is valid.")
            Else
                Console.WriteLine("The XML signature is not valid.")
            End If
        Catch e As CryptographicException
            Console.WriteLine(e.Message)
        End Try
    End Sub



    ' Sign an XML file and save the signature in a new file.
    Public Shared Sub SignDetachedResource(ByVal URIString As String, ByVal XmlSigFileName As String, ByVal DSAKey As DSA)
        ' Create a SignedXml object.
        Dim signedXml As New SignedXml()

        ' Assign the DSA key to the SignedXml object.
        signedXml.SigningKey = DSAKey

        ' Create a reference to be signed.
        Dim reference As New Reference()

        ' Add the passed URI to the reference object.
        reference.Uri = URIString

        ' Add the reference to the SignedXml object.
        signedXml.AddReference(reference)

        ' Add a DSAKeyValue to the KeyInfo (optional; helps recipient find key to validate).
        Dim keyInfo As New KeyInfo()
        keyInfo.AddClause(New DSAKeyValue(CType(DSAKey, DSA)))
        signedXml.KeyInfo = keyInfo

        ' Compute the signature.
        signedXml.ComputeSignature()

        ' Get the XML representation of the signature and save
        ' it to an XmlElement object.
        Dim xmlDigitalSignature As XmlElement = signedXml.GetXml()

        ' Save the signed XML document to a file specified
        ' using the passed string.
        Dim xmltw As New XmlTextWriter(XmlSigFileName, New UTF8Encoding(False))
        xmlDigitalSignature.WriteTo(xmltw)
        xmltw.Close()
    End Sub

    ' Verify the signature of an XML file and return the result.
    Public Shared Function VerifyDetachedSignature(ByVal XmlSigFileName As String) As [Boolean]
        ' Create a new XML document.
        Dim xmlDocument As New XmlDocument()

        ' Load the passed XML file into the document.
        xmlDocument.Load(XmlSigFileName)

        ' Create a new SignedXMl object.
        Dim signedXml As New SignedXml()

        ' Find the "Signature" node and create a new
        ' XmlNodeList object.
        Dim nodeList As XmlNodeList = xmlDocument.GetElementsByTagName("Signature")

        ' Load the signature node.
        signedXml.LoadXml(CType(nodeList(0), XmlElement))

        ' Check the signature and return the result.
        Return signedXml.CheckSignature()
    End Function
End Class
開發者ID:VB.NET開發者,項目名稱:System.Security.Cryptography.Xml,代碼行數:136,代碼來源:SignedXml.CheckSignatureReturningKey

示例2: Main

'
' This example signs an XML file using an
' envelope signature. It then verifies the 
' signed XML.
'
Imports System.Security.Cryptography
Imports System.Security.Cryptography.Xml
Imports System.Text
Imports System.Xml



Public Class SignVerifyEnvelope
   
   
   Overloads Public Shared Sub Main(args() As [String])
      Try
         ' Generate a DSA signing key.
         Dim DSAKey As New DSACryptoServiceProvider()
         
         ' Create an XML file to sign.
         CreateSomeXml("Example.xml")
         Console.WriteLine("New XML file created.")
         
         ' Sign the XML that was just created and save it in a 
         ' new file.
         SignXmlFile("Example.xml", "SignedExample.xml", DSAKey)
         Console.WriteLine("XML file signed.")
         
         ' Verify the signature of the signed XML.
         Console.WriteLine("Verifying signature...")
         Dim result As Boolean = VerifyXmlFile("SignedExample.xml")
         
         ' Display the results of the signature verification to \
         ' the console.
         If result Then
            Console.WriteLine("The XML signature is valid.")
         Else
            Console.WriteLine("The XML signature is not valid.")
         End If
      Catch e As CryptographicException
         Console.WriteLine(e.Message)
      End Try
   End Sub 
   
   
   ' Sign an XML file and save the signature in a new file.
   Public Shared Sub SignXmlFile(FileName As String, SignedFileName As String, DSAKey As DSA)
      ' Create a new XML document.
      Dim doc As New XmlDocument()
      
      ' Format the document to ignore white spaces.
      doc.PreserveWhitespace = False
      
      ' Load the passed XML file using it's name.
      doc.Load(New XmlTextReader(FileName))
      
      ' Create a SignedXml object.
      Dim signedXml As New SignedXml(doc)
      
      ' Add the DSA key to the SignedXml document. 
      signedXml.SigningKey = DSAKey
      
      ' Create a reference to be signed.
      Dim reference As New Reference()
      reference.Uri = ""
      
      ' Add an enveloped transformation to the reference.
      Dim env As New XmlDsigEnvelopedSignatureTransform()
      reference.AddTransform(env)
      
      ' Add the reference to the SignedXml object.
      signedXml.AddReference(reference)
      
      
      ' Add a DSAKeyValue to the KeyInfo (optional; helps recipient find key to validate).
      Dim keyInfo As New KeyInfo()
      keyInfo.AddClause(New DSAKeyValue(CType(DSAKey, DSA)))
      signedXml.KeyInfo = keyInfo
      
      ' Compute the signature.
      signedXml.ComputeSignature()
      
      ' Get the XML representation of the signature and save
      ' it to an XmlElement object.
      Dim xmlDigitalSignature As XmlElement = signedXml.GetXml()
      
      ' Append the element to the XML document.
      doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, True))
      
      
      If TypeOf doc.FirstChild Is XmlDeclaration Then
         doc.RemoveChild(doc.FirstChild)
      End If
      
      ' Save the signed XML document to a file specified
      ' using the passed string.
      Dim xmltw As New XmlTextWriter(SignedFileName, New UTF8Encoding(False))
      doc.WriteTo(xmltw)
      xmltw.Close()
   End Sub 
   
   ' Verify the signature of an XML file and return the result.
   Public Shared Function VerifyXmlFile(Name As [String]) As [Boolean]
      ' Create a new XML document.
      Dim xmlDocument As New XmlDocument()
      
      ' Format using white spaces.
      xmlDocument.PreserveWhitespace = True
      
      ' Load the passed XML file into the document. 
      xmlDocument.Load(Name)
      
      ' Create a new SignedXml object and pass it
      ' the XML document class.
      Dim signedXml As New SignedXml(xmlDocument)
      
      ' Find the "Signature" node and create a new
      ' XmlNodeList object.
      Dim nodeList As XmlNodeList = xmlDocument.GetElementsByTagName("Signature")
      
      ' Load the signature node.
      signedXml.LoadXml(CType(nodeList(0), XmlElement))
      
      ' Check the signature and return the result.
      Return signedXml.CheckSignature()
   End Function 
   
   ' Create example data to sign.
   Public Shared Sub CreateSomeXml(FileName As String)
      ' Create a new XmlDocument object.
      Dim document As New XmlDocument()
      
      ' Create a new XmlNode object.
      Dim node As XmlNode = document.CreateNode(XmlNodeType.Element, "", "MyElement", "samples")
      
      ' Add some text to the node.
      node.InnerText = "Example text to be signed."
      
      ' Append the node to the document.
      document.AppendChild(node)
      
      ' Save the XML document to the file name specified.
      Dim xmltw As New XmlTextWriter(FileName, New UTF8Encoding(False))
      document.WriteTo(xmltw)
      xmltw.Close()
   End Sub 
End Class
開發者ID:VB.NET開發者,項目名稱:System.Security.Cryptography.Xml,代碼行數:148,代碼來源:SignedXml.CheckSignatureReturningKey


注:本文中的System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。