XmlLicenseTransform Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 |
| 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 |
| 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) |