Bagikan melalui


XmlLicenseTransform Kelas

Definisi

Mewakili algoritma transformasi lisensi yang digunakan untuk menormalkan lisensi XrML untuk tanda tangan.

public ref class XmlLicenseTransform : System::Security::Cryptography::Xml::Transform
public class XmlLicenseTransform : System.Security.Cryptography.Xml.Transform
type XmlLicenseTransform = class
    inherit Transform
Public Class XmlLicenseTransform
Inherits Transform
Warisan
XmlLicenseTransform

Contoh

Contoh kode berikut menunjukkan cara memvalidasi tanda tangan digital XML menggunakan IRelDecryptor antarmuka dan XmlLicenseTransform kelas .

void CheckSignatureWithEncryptedGrant(
    String^ fileName, IRelDecryptor^ decryptor)
{
    // Create a new XML document.
    XmlDocument^ sourceDocument = gcnew XmlDocument();
    XmlNamespaceManager^ namespaceManager =
        gcnew XmlNamespaceManager(sourceDocument->NameTable);

    // Format using white spaces.
    sourceDocument->PreserveWhitespace = true;

    // Load the passed XML file into the document.
    sourceDocument->Load(fileName);
    namespaceManager->AddNamespace("dsig",
        SignedXml::XmlDsigNamespaceUrl);

    // Find the "Signature" node and create a new
    // XmlNodeList object.
    XmlNodeList^ nodeList = 
        sourceDocument->SelectNodes("//dsig:Signature", namespaceManager);

    for (int i = 0, count = nodeList->Count; i < count; i++)
    {
        XmlDocument^ clone = (XmlDocument^) sourceDocument->Clone();
        XmlNodeList^ signatures =
            clone->SelectNodes("//dsig:Signature", namespaceManager);

        // Create a new SignedXml object and pass into it the
        // XML document clone.
        SignedXml^ signedDocument = gcnew SignedXml(clone);

        // Load the signature node.
        signedDocument->LoadXml((XmlElement^)signatures[i]);

        // Set the context for license transform
        Transform^ licenseTransform = ((Reference^)signedDocument->
            SignedInfo->References[0])->TransformChain[0];

        if ((licenseTransform::typeid == XmlLicenseTransform::typeid) 
            && (decryptor != nullptr))
        {
            // Decryptor is used to decrypt encryptedGrant
            // elements.
            ((XmlLicenseTransform^) licenseTransform)->Decryptor = decryptor;
        }

        // Check the signature and display the result.
        if (signedDocument->CheckSignature())
        {
            Console::WriteLine("SUCCESS: " +
                "CheckSignatureWithEncryptedGrant - issuer index #" + i);
        }
        else
        {
            Console::WriteLine("FAILURE: " +
                "CheckSignatureWithEncryptedGrant - issuer index #" + i);
        }
    }
}
public static void CheckSignatureWithEncryptedGrant(string fileName, IRelDecryptor decryptor)
{
    // Create a new XML document.
    XmlDocument xmlDocument = new XmlDocument();
    XmlNamespaceManager nsManager = new XmlNamespaceManager(xmlDocument.NameTable);

    // Format using white spaces.
    xmlDocument.PreserveWhitespace = true;

    // Load the passed XML file into the document.
    xmlDocument.Load(fileName);
    nsManager.AddNamespace("dsig", SignedXml.XmlDsigNamespaceUrl);

    // Find the "Signature" node and create a new XmlNodeList object.
    XmlNodeList nodeList = xmlDocument.SelectNodes("//dsig:Signature", nsManager);

    for (int i = 0, count = nodeList.Count; i < count; i++)
    {
        XmlDocument clone = xmlDocument.Clone() as XmlDocument;
        XmlNodeList signatures = clone.SelectNodes("//dsig:Signature", nsManager);

        // Create a new SignedXml object and pass into it the XML document clone.
        SignedXml signedXml = new SignedXml(clone);

        // Load the signature node.
        signedXml.LoadXml((XmlElement)signatures[i]);

        // Set the context for license transform
        Transform trans = ((Reference)signedXml.SignedInfo.References[0]).TransformChain[0];

        if (trans is XmlLicenseTransform)
        {

            // Decryptor is used to decrypt encryptedGrant elements.
            if (decryptor != null)
                (trans as XmlLicenseTransform).Decryptor = decryptor;
        }

        // Check the signature and display the result.
        bool result = signedXml.CheckSignature();

        if (result)
            Console.WriteLine("SUCCESS: CheckSignatureWithEncryptedGrant - issuer index #" +
                                            i.ToString());
        else
            Console.WriteLine("FAILURE: CheckSignatureWithEncryptedGrant - issuer index #" +
                                            i.ToString());
    }
}
    Public Shared Sub CheckSignatureWithEncryptedGrant(ByVal fileName As String, ByVal decryptor As IRelDecryptor)
        ' Create a new XML document.
        Dim xmlDocument As New XmlDocument()
        Dim nsManager As New XmlNamespaceManager(xmlDocument.NameTable)

        ' Format using white spaces.
        xmlDocument.PreserveWhitespace = True

        ' Load the passed XML file into the document. 
        xmlDocument.Load(fileName)
        nsManager.AddNamespace("dsig", SignedXml.XmlDsigNamespaceUrl)

        ' Find the "Signature" node and create a new XmlNodeList object.
        Dim nodeList As XmlNodeList = xmlDocument.SelectNodes("//dsig:Signature", nsManager)

        Dim count = nodeList.Count

        For i As Integer = 0 To count - 1
            Dim clone As XmlDocument = xmlDocument.Clone()
           
            Dim signatures As XmlNodeList = clone.SelectNodes("//dsig:Signature", nsManager)

            ' Create a new SignedXml object and pass into it the XML document clone.
            Dim signedXml As New SignedXml(clone)

            ' Load the signature node.
            signedXml.LoadXml(CType(signatures(i), XmlElement))

            ' Set the context for license transform
            Dim trans As Transform = CType(signedXml.SignedInfo.References(0), Reference).TransformChain(0)

            If TypeOf trans Is XmlLicenseTransform Then

                ' Decryptor is used to decrypt encryptedGrant elements.
                If Not (decryptor Is Nothing) Then
                    CType(trans, XmlLicenseTransform).Decryptor = decryptor
                End If

            End If

            ' Check the signature and display the result.
            Dim result As Boolean = signedXml.CheckSignature()

            If result Then
                Console.WriteLine("SUCCESS: CheckSignatureWithEncryptedGrant - issuer index #" + i.ToString())
            Else
                Console.WriteLine("FAILURE: CheckSignatureWithEncryptedGrant - issuer index #" + i.ToString())
            End If
        Next i

    End Sub
End Class

Keterangan

Kelas XmlLicenseTransform mewakili algoritma transformasi lisensi seperti yang didefinisikan dalam Bahasa Ekstensi Hak MPEG (MPEG REL).

XmlLicenseTransform Gunakan kelas untuk mengubah lisensi XrML untuk tanda tangan.

Pengidentifikasi Sumber Daya Seragam (URI) yang menjelaskan XmlLicenseTransform kelas ditentukan oleh XmlLicenseTransformUrl bidang .

Konstruktor

XmlLicenseTransform()

Menginisialisasi instans baru kelas XmlLicenseTransform.

Properti

Algorithm

Mendapatkan atau mengatur Pengidentifikasi Sumber Daya Seragam (URI) yang mengidentifikasi algoritma yang dilakukan oleh transformasi saat ini.

(Diperoleh dari Transform)
Context

Mendapatkan atau mengatur XmlElement objek yang mewakili konteks dokumen tempat objek saat ini Transform berjalan.

(Diperoleh dari Transform)
Decryptor

Mendapatkan atau mengatur dekripsi objek saat ini XmlLicenseTransform .

InputTypes

Mendapatkan array jenis yang merupakan input yang valid ke OutputTypes metode objek saat ini XmlLicenseTransform .

OutputTypes

Mendapatkan array jenis yang merupakan output valid dari OutputTypes metode objek saat ini XmlLicenseTransform .

PropagatedNamespaces

Mendapatkan atau mengatur Hashtable objek yang berisi namespace yang disebarkan ke dalam tanda tangan.

(Diperoleh dari Transform)
Resolver

Menyetel objek saat ini XmlResolver .

(Diperoleh dari Transform)

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetDigestedOutput(HashAlgorithm)

Saat ditimpa di kelas turunan, mengembalikan hash yang Transform terkait dengan objek .

(Diperoleh dari Transform)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetInnerXml()

Mengembalikan representasi XML dari parameter XmlLicenseTransform objek yang cocok untuk disertakan sebagai subelemen elemen XMLDSIG <Transform> .

GetOutput()

Mengembalikan output objek XmlLicenseTransform .

GetOutput(Type)

Mengembalikan output objek XmlLicenseTransform .

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
GetXml()

Mengembalikan representasi XML dari objek saat ini Transform .

(Diperoleh dari Transform)
LoadInnerXml(XmlNodeList)

Mengurai objek yang ditentukan XmlNodeList sebagai konten khusus transformasi dari <Transform> elemen; metode ini tidak didukung karena XmlLicenseTransform objek tidak memiliki elemen XML dalam.

LoadInput(Object)

Memuat input yang ditentukan ke dalam objek saat ini XmlLicenseTransform .

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk