Aracılığıyla paylaş


XmlLicenseTransform Sınıf

Tanım

İmzalar için XrML lisanslarını normalleştirmek için kullanılan lisans dönüştürme algoritmasını temsil eder.

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
Devralma
XmlLicenseTransform

Örnekler

Aşağıdaki kod örneği, arabirimini ve sınıfını kullanarak xml dijital imzasını doğrulamayı IRelDecryptorXmlLicenseTransform gösterir.

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

Açıklamalar

sınıfı, XmlLicenseTransform MPEG Rights Extension Language (MPEG REL) içinde tanımlanan lisans dönüştürme algoritmasını temsil eder.

İmzalar XmlLicenseTransform için XrML lisanslarını dönüştürmek için sınıfını kullanın.

Sınıfı tanımlayan XmlLicenseTransform Tekdüzen Kaynak Tanımlayıcısı (URI) alanı tarafından XmlLicenseTransformUrl tanımlanır.

Oluşturucular

XmlLicenseTransform()

XmlLicenseTransform sınıfının yeni bir örneğini başlatır.

Özellikler

Algorithm

Geçerli dönüşüm tarafından gerçekleştirilen algoritmayı tanımlayan Tekdüzen Kaynak Tanımlayıcısı'nı (URI) alır veya ayarlar.

(Devralındığı yer: Transform)
Context

Geçerli Transform nesnenin altında çalıştığı belge bağlamını temsil eden bir XmlElement nesneyi alır veya ayarlar.

(Devralındığı yer: Transform)
Decryptor

Geçerli XmlLicenseTransform nesnenin şifre çözücüsünün alır veya ayarlar.

InputTypes

Geçerli XmlLicenseTransform nesnenin yöntemine OutputTypes geçerli girişler olan bir tür dizisi alır.

OutputTypes

Geçerli XmlLicenseTransform nesnenin yönteminden OutputTypes geçerli çıkışlar olan bir tür dizisi alır.

PropagatedNamespaces

İmzaya yayılan ad alanlarını içeren bir Hashtable nesneyi alır veya ayarlar.

(Devralındığı yer: Transform)
Resolver

Geçerli XmlResolver nesneyi ayarlar.

(Devralındığı yer: Transform)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetDigestedOutput(HashAlgorithm)

Türetilmiş bir sınıfta geçersiz kılındığında, bir Transform nesneyle ilişkili özeti döndürür.

(Devralındığı yer: Transform)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetInnerXml()

XmlDSIG <Transform> öğesinin alt öğeleri olarak dahil edilmeye uygun bir XmlLicenseTransform nesnenin parametrelerinin XML gösterimini döndürür.

GetOutput()

Bir XmlLicenseTransform nesnenin çıkışını döndürür.

GetOutput(Type)

Bir XmlLicenseTransform nesnenin çıkışını döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
GetXml()

Geçerli Transform nesnenin XML gösterimini döndürür.

(Devralındığı yer: Transform)
LoadInnerXml(XmlNodeList)

Belirtilen XmlNodeList nesneyi bir <Transform> öğenin dönüştürmeye özgü içeriği olarak ayrıştırıyor; nesnenin XmlLicenseTransform iç XML öğeleri olmadığından bu yöntem desteklenmiyor.

LoadInput(Object)

Belirtilen girişi geçerli XmlLicenseTransform nesneye yükler.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır