XmlLicenseTransform Classe

Définition

Représente l’algorithme de transformation de licence utilisé pour normaliser les licences XrML pour les signatures.

public ref class XmlLicenseTransform : System::Security::Cryptography::Xml::Transform
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XmlDsigXsltTransform uses XslCompiledTransform which requires dynamic code.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The algorithm implementations referenced in the XML payload might be removed. Ensure the required algorithm implementations are preserved in your application.")]
public class XmlLicenseTransform : System.Security.Cryptography.Xml.Transform
public class XmlLicenseTransform : System.Security.Cryptography.Xml.Transform
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XmlDsigXsltTransform uses XslCompiledTransform which requires dynamic code.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The algorithm implementations referenced in the XML payload might be removed. Ensure the required algorithm implementations are preserved in your application.")>]
type XmlLicenseTransform = class
    inherit Transform
type XmlLicenseTransform = class
    inherit Transform
Public Class XmlLicenseTransform
Inherits Transform
Héritage
XmlLicenseTransform
Attributs

Exemples

L’exemple de code suivant montre comment valider une signature numérique XML à l’aide de l’interface IRelDecryptor et de la XmlLicenseTransform classe.

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

Remarques

La XmlLicenseTransform classe représente l’algorithme de transformation de licence tel que défini dans le langage MPEG Rights Extension Language (MPEG REL).

Utilisez la XmlLicenseTransform classe pour transformer des licences XrML pour les signatures.

L’URI (Uniform Resource Identifier) qui décrit la XmlLicenseTransform classe est définie par le XmlLicenseTransformUrl champ.

Constructeurs

Nom Description
XmlLicenseTransform()

Initialise une nouvelle instance de la classe XmlLicenseTransform.

Propriétés

Nom Description
Algorithm

Obtient ou définit l’URI (Uniform Resource Identifier) qui identifie l’algorithme effectué par la transformation actuelle.

(Hérité de Transform)
Context

Obtient ou définit un XmlElement objet qui représente le contexte de document sous lequel l’objet actuel Transform est en cours d’exécution.

(Hérité de Transform)
Decryptor

Obtient ou définit le déchiffreur de l’objet actuel XmlLicenseTransform .

InputTypes

Obtient un tableau de types qui sont des entrées valides dans la OutputTypes méthode de l’objet actuel XmlLicenseTransform .

OutputTypes

Obtient un tableau de types qui sont des sorties valides à partir de la OutputTypes méthode de l’objet actuel XmlLicenseTransform .

PropagatedNamespaces

Obtient ou définit un Hashtable objet qui contient les espaces de noms propagés dans la signature.

(Hérité de Transform)
Resolver

Définit l’objet actuel XmlResolver .

(Hérité de Transform)

Méthodes

Nom Description
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetDigestedOutput(HashAlgorithm)

En cas de substitution dans une classe dérivée, retourne le digest associé à un Transform objet.

(Hérité de Transform)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetInnerXml()

Retourne une représentation XML des paramètres d’un XmlLicenseTransform objet qui conviennent pour être inclus en tant que sous-éléments d’un élément XMLDSIG <Transform> .

GetOutput()

Retourne la sortie d’un XmlLicenseTransform objet.

GetOutput(Type)

Retourne la sortie d’un XmlLicenseTransform objet.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
GetXml()

Retourne la représentation XML de l’objet actif Transform .

(Hérité de Transform)
LoadInnerXml(XmlNodeList)

Analyse l’objet spécifié XmlNodeList en tant que contenu spécifique à la transformation d’un <Transform> élément ; cette méthode n’est pas prise en charge, car l’objet XmlLicenseTransform n’a aucun élément XML interne.

LoadInput(Object)

Charge l’entrée spécifiée dans l’objet actif XmlLicenseTransform .

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à