XmlLicenseTransform Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa el algoritmo de transformación de licencias usado para normalizar licencias XrML para firmas.
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
- Herencia
Ejemplos
En el ejemplo de código siguiente se muestra cómo validar una firma digital XML mediante la IRelDecryptor interfaz y la XmlLicenseTransform clase .
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
Comentarios
La XmlLicenseTransform clase representa el algoritmo de transformación de licencias tal como se define en el lenguaje de extensión de derechos MPEG (MPEG REL).
Use la XmlLicenseTransform clase para transformar licencias XrML para firmas.
El identificador uniforme de recursos (URI) que describe la XmlLicenseTransform clase se define mediante el XmlLicenseTransformUrl campo .
Constructores
| Nombre | Description |
|---|---|
| XmlLicenseTransform() |
Inicializa una nueva instancia de la clase XmlLicenseTransform. |
Propiedades
| Nombre | Description |
|---|---|
| Algorithm |
Obtiene o establece el identificador uniforme de recursos (URI) que identifica el algoritmo realizado por la transformación actual. (Heredado de Transform) |
| Context |
Obtiene o establece un XmlElement objeto que representa el contexto del documento en el que se ejecuta el objeto actual Transform . (Heredado de Transform) |
| Decryptor |
Obtiene o establece el descifrador del objeto actual XmlLicenseTransform . |
| InputTypes |
Obtiene una matriz de tipos que son entradas válidas para el OutputTypes método del objeto actual XmlLicenseTransform . |
| OutputTypes |
Obtiene una matriz de tipos que son salidas válidas del OutputTypes método del objeto actual XmlLicenseTransform . |
| PropagatedNamespaces |
Obtiene o establece un Hashtable objeto que contiene los espacios de nombres que se propagan a la firma. (Heredado de Transform) |
| Resolver |
Establece el objeto actual XmlResolver . (Heredado de Transform) |
Métodos
| Nombre | Description |
|---|---|
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetDigestedOutput(HashAlgorithm) |
Cuando se reemplaza en una clase derivada, devuelve el resumen asociado a un Transform objeto . (Heredado de Transform) |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetInnerXml() |
Devuelve una representación XML de los parámetros de un XmlLicenseTransform objeto que son adecuados para incluirse como subelementos de un elemento XMLDSIG |
| GetOutput() |
Devuelve la salida de un XmlLicenseTransform objeto . |
| GetOutput(Type) |
Devuelve la salida de un XmlLicenseTransform objeto . |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| GetXml() |
Devuelve la representación XML del objeto actual Transform . (Heredado de Transform) |
| LoadInnerXml(XmlNodeList) |
Analiza el objeto especificado XmlNodeList como contenido específico de transformación de un |
| LoadInput(Object) |
Carga la entrada especificada en el objeto actual XmlLicenseTransform . |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |