XmlLicenseTransform Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt het algoritme voor licentietransformatie dat wordt gebruikt voor het normaliseren van XrML-licenties voor handtekeningen.
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
- Overname
- Kenmerken
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een digitale XML-handtekening valideert met behulp van de IRelDecryptor interface en de XmlLicenseTransform klasse.
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
Opmerkingen
De XmlLicenseTransform klasse vertegenwoordigt het algoritme voor licentietransformatie zoals gedefinieerd in de MPEG Rights Extension Language (MPEG REL).
Gebruik de XmlLicenseTransform klasse om XrML-licenties voor handtekeningen te transformeren.
De URI (Uniform Resource Identifier) die de XmlLicenseTransform klasse beschrijft, wordt gedefinieerd door het XmlLicenseTransformUrl veld.
Constructors
| Name | Description |
|---|---|
| XmlLicenseTransform() |
Initialiseert een nieuw exemplaar van de XmlLicenseTransform klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Algorithm |
Haalt de URI (Uniform Resource Identifier) op of stelt deze in die het algoritme identificeert dat wordt uitgevoerd door de huidige transformatie. (Overgenomen van Transform) |
| Context |
Hiermee wordt een XmlElement object opgehaald of ingesteld dat de documentcontext vertegenwoordigt waaronder het huidige Transform object wordt uitgevoerd. (Overgenomen van Transform) |
| Decryptor |
Hiermee wordt de ontsleuteling van het huidige XmlLicenseTransform object opgehaald of ingesteld. |
| InputTypes |
Hiermee haalt u een matrix op van typen die geldige invoer zijn voor de OutputTypes methode van het huidige XmlLicenseTransform object. |
| OutputTypes |
Hiermee haalt u een matrix op van typen die geldige uitvoer zijn van de OutputTypes methode van het huidige XmlLicenseTransform object. |
| PropagatedNamespaces |
Hiermee wordt een Hashtable object opgehaald of ingesteld dat de naamruimten bevat die in de handtekening worden doorgegeven. (Overgenomen van Transform) |
| Resolver |
Hiermee stelt u het huidige XmlResolver object in. (Overgenomen van Transform) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetDigestedOutput(HashAlgorithm) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt de samenvatting geretourneerd die aan een Transform object is gekoppeld. (Overgenomen van Transform) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetInnerXml() |
Retourneert een XML-weergave van de parameters van een XmlLicenseTransform object dat geschikt is om te worden opgenomen als subelementen van een XMLDSIG-element |
| GetOutput() |
Retourneert de uitvoer van een XmlLicenseTransform object. |
| GetOutput(Type) |
Retourneert de uitvoer van een XmlLicenseTransform object. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| GetXml() |
Retourneert de XML-weergave van het huidige Transform object. (Overgenomen van Transform) |
| LoadInnerXml(XmlNodeList) |
Parseert het opgegeven XmlNodeList object als transformatiespecifieke inhoud van een |
| LoadInput(Object) |
Laadt de opgegeven invoer in het huidige XmlLicenseTransform object. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |