DataObject 建構函式

定義

初始化 DataObject 類別的新執行個體。

多載

名稱 Description
DataObject()

初始化 DataObject 類別的新執行個體。

DataObject(String, String, String, XmlElement)

初始化一個新的類別實例 DataObject ,並以指定的識別碼、MIME 類型、編碼及資料。

DataObject()

來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs

初始化 DataObject 類別的新執行個體。

public:
 DataObject();
public DataObject();
Public Sub New ()

範例

以下程式碼範例示範如何產生包圍式 XML 簽章。

using System;
using System.IO;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.Xml;

public class XMLdsigsample1 {

static void Main(String[] args)
{
     // Create example data to sign.
     XmlDocument document = new XmlDocument();
     XmlNode  node = document.CreateNode(XmlNodeType.Element, "", "MyElement", "samples");
     node.InnerText = "This is some text";
     document.AppendChild(node);
     Console.Error.WriteLine("Data to sign:\n" + document.OuterXml + "\n");

     // Create the SignedXml message.
     SignedXml signedXml = new SignedXml();
     RSA key = RSA.Create();
     signedXml.SigningKey = key;

     // Create a data object to hold the data to sign.
     DataObject dataObject = new DataObject();
     dataObject.Data = document.ChildNodes;
     dataObject.Id = "MyObjectId";

     // Add the data object to the signature.
     signedXml.AddObject(dataObject);

     // Create a reference to be able to package everything into the
     // message.
     Reference reference = new Reference();
     reference.Uri = "#MyObjectId";

     // Add it to the message.
     signedXml.AddReference(reference);

     // Add a KeyInfo.
     KeyInfo keyInfo = new KeyInfo();
     keyInfo.AddClause(new RSAKeyValue(key));
     signedXml.KeyInfo = keyInfo;

     // Compute the signature.
     signedXml.ComputeSignature();

     // Get the XML representation of the signature.
     XmlElement xmlSignature = signedXml.GetXml();
     Console.WriteLine(xmlSignature.OuterXml);
}
}
Imports System.IO
Imports System.Security.Cryptography
Imports System.Security.Cryptography.Xml
Imports System.Xml

 _


Public Class XMLdsigsample1

   Shared Sub Main(args() As [String])
      ' Create example data to sign.
      Dim document As New XmlDocument()
      Dim node As XmlNode = document.CreateNode(XmlNodeType.Element, "", "MyElement", "samples")
      node.InnerText = "This is some text"
      document.AppendChild(node)
      Console.Error.WriteLine("Data to sign:")
      Console.Error.WriteLine()
      Console.Error.WriteLine(document.OuterXml)
      Console.Error.WriteLine()
      
      ' Create the SignedXml message.
      Dim signedXml As New SignedXml()
      Dim key As RSA = RSA.Create()
      signedXml.SigningKey = key
      
      ' Create a data object to hold the data to sign.
      Dim dataObject As New DataObject()
      dataObject.Data = document.ChildNodes
      dataObject.Id = "MyObjectId"
      
      ' Add the data object to the signature.
      signedXml.AddObject(dataObject)
      
      ' Create a reference to be able to package everything into the
      ' message.
      Dim reference As New Reference()
      reference.Uri = "#MyObjectId"
      
      ' Add it to the message.
      signedXml.AddReference(reference)
      
      ' Add a KeyInfo.
      Dim keyInfo As New KeyInfo()
      keyInfo.AddClause(New RSAKeyValue(key))
      signedXml.KeyInfo = keyInfo
      
      ' Compute the signature.
      signedXml.ComputeSignature()
      
      ' Get the XML representation of the signature.
      Dim xmlSignature As XmlElement = signedXml.GetXml()
      Console.WriteLine(xmlSignature.OuterXml)
   End Sub
End Class

以下程式碼範例示範如何檢查 XML 簽章。

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.IO;
using System.Xml;

public class Verify {

    public static void Main(String[] args)
    {

        Console.WriteLine("Verifying " + args[0] + "...");

        // Create a SignedXml.
        SignedXml signedXml = new SignedXml();

        // Load the XML.
        XmlDocument xmlDocument = new XmlDocument();
        xmlDocument.PreserveWhitespace = true;
        xmlDocument.Load(new XmlTextReader(args[0]));

        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");
        signedXml.LoadXml((XmlElement)nodeList[0]);

        if (signedXml.CheckSignature()) {
            Console.WriteLine("Signature check OK");
        } else {
            Console.WriteLine("Signature check FAILED");
        }
    }
}
Imports System.Security.Cryptography
Imports System.Security.Cryptography.Xml
Imports System.IO
Imports System.Xml

 _

Public Class Verify
   
   Public Shared Sub Main(args() As [String])
      
      Console.WriteLine(("Verifying " + args(0) + "..."))
      
      ' Create a SignedXml.
      Dim signedXml As New SignedXml()
      
      ' Load the XML.
      Dim xmlDocument As New XmlDocument()
      xmlDocument.PreserveWhitespace = True
      xmlDocument.Load(New XmlTextReader(args(0)))
      
      Dim nodeList As XmlNodeList = xmlDocument.GetElementsByTagName("Signature")
      signedXml.LoadXml(CType(nodeList(0), XmlElement))
      
      If signedXml.CheckSignature() Then
         Console.WriteLine("Signature check OK")
      Else
         Console.WriteLine("Signature check FAILED")
      End If
   End Sub
End Class

備註

DataObject 類別用於 XML 簽章。 初始化 DataObject後,你可以指派 DataId 屬性。

適用於

DataObject(String, String, String, XmlElement)

來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs
來源:
DataObject.cs

初始化一個新的類別實例 DataObject ,並以指定的識別碼、MIME 類型、編碼及資料。

public:
 DataObject(System::String ^ id, System::String ^ mimeType, System::String ^ encoding, System::Xml::XmlElement ^ data);
public DataObject(string id, string mimeType, string encoding, System.Xml.XmlElement data);
new System.Security.Cryptography.Xml.DataObject : string * string * string * System.Xml.XmlElement -> System.Security.Cryptography.Xml.DataObject
Public Sub New (id As String, mimeType As String, encoding As String, data As XmlElement)

參數

id
String

識別以初始化新的實例 DataObject

mimeType
String

用於初始化新 DataObject實例的資料 MIME 類型。

encoding
String

用於初始化新 DataObject實例的資料編碼。

data
XmlElement

用來初始化新實例的資料 DataObject

例外狀況

參數 datanull

備註

DataObject 類別用於 XML 簽章。 參數 id 指的是包含要使用資料的元素名稱。 參數 data 指的是包含 id 參數元素的 XML 節點清單。

適用於