Udostępnij za pośrednictwem


CipherReference Klasa

Definicja

<CipherReference> Reprezentuje element w szyfrowaniu XML. Klasa ta nie może być dziedziczona.

public ref class CipherReference sealed : System::Security::Cryptography::Xml::EncryptedReference
public sealed class CipherReference : System.Security.Cryptography.Xml.EncryptedReference
type CipherReference = class
    inherit EncryptedReference
Public NotInheritable Class CipherReference
Inherits EncryptedReference
Dziedziczenie
CipherReference

Przykłady

Poniższy przykład kodu tworzy nowe wystąpienie klasy CipherReference.

#using <System.Xml.dll>
#using <System.Security.dll>
#using <System.dll>

using namespace System;
using namespace System::Security::Cryptography::Xml;
using namespace System::Xml;
using namespace System::IO;

/// This sample used the EncryptedData class to create an encrypted data element
/// and write it to an XML file. It demonstrates the use of CipherReference.

[STAThread]
int main()
{
   
   //Create a URI string.
   String^ uri = "http://www.woodgrovebank.com/document.xml";
   
   // Create a Base64 transform. The input content retrieved from the
   // URI should be Base64-decoded before other processing.
   Transform^ base64 = gcnew XmlDsigBase64Transform;
   
   //Create a transform chain and add the transform to it.
   TransformChain^ tc = gcnew TransformChain;
   tc->Add( base64 );
   
   //Create <CipherReference> information.
   CipherReference ^ reference = gcnew CipherReference( uri,tc );
   
   // Create a new CipherData object using the CipherReference information.
   // Note that you cannot assign both a CipherReference and a CipherValue
   // to a CipherData object.
   CipherData ^ cd = gcnew CipherData( reference );
   
   // Create a new EncryptedData object.
   EncryptedData^ ed = gcnew EncryptedData;
   
   //Add an encryption method to the object.
   ed->Id = "ED";
   ed->EncryptionMethod = gcnew EncryptionMethod( "http://www.w3.org/2001/04/xmlenc#aes128-cbc" );
   ed->CipherData = cd;
   
   //Add key information to the object.
   KeyInfo^ ki = gcnew KeyInfo;
   ki->AddClause( gcnew KeyInfoRetrievalMethod( "#EK","http://www.w3.org/2001/04/xmlenc#EncryptedKey" ) );
   ed->KeyInfo = ki;
   
   // Create new XML document and put encrypted data into it.
   XmlDocument^ doc = gcnew XmlDocument;
   XmlElement^ encryptionPropertyElement = dynamic_cast<XmlElement^>(doc->CreateElement( "EncryptionProperty", EncryptedXml::XmlEncNamespaceUrl ));
   EncryptionProperty ^ ep = gcnew EncryptionProperty( encryptionPropertyElement );
   ed->AddProperty( ep );
   
   // Output the resulting XML information into a file.
   try
   {
      String^ path = "c:\\test\\MyTest.xml";
      File::WriteAllText( path, ed->GetXml()->OuterXml );
   }
   catch ( IOException^ e ) 
   {
      Console::WriteLine( "File IO error. {0}", e );
   }

}
using System;
using System.Security.Cryptography.Xml;
using System.Xml;
using System.IO;

/// This sample used the EncryptedData class to create an encrypted data element
/// and write it to an XML file. It demonstrates the use of CipherReference.
namespace EncryptedDataSample
{
    class Example
    {
        [STAThread]
        static void Main(string[] args)
        {
            //Create a URI string.
            String uri = "http://www.woodgrovebank.com/document.xml";
            // Create a Base64 transform. The input content retrieved from the
            // URI should be Base64-decoded before other processing.
            Transform base64 = new XmlDsigBase64Transform();
            //Create a transform chain and add the transform to it.
            TransformChain tc = new TransformChain();
            tc.Add(base64);
            //Create <CipherReference> information.
            CipherReference reference = new CipherReference(uri, tc);

            // Create a new CipherData object using the CipherReference information.
            // Note that you cannot assign both a CipherReference and a CipherValue
            // to a CipherData object.
            CipherData cd = new CipherData(reference);

            // Create a new EncryptedData object.
            EncryptedData ed = new EncryptedData();

            //Add an encryption method to the object.
            ed.Id = "ED";
            ed.EncryptionMethod = new EncryptionMethod("http://www.w3.org/2001/04/xmlenc#aes128-cbc");
            ed.CipherData = cd;

            //Add key information to the object.
            KeyInfo ki = new KeyInfo();
            ki.AddClause(new KeyInfoRetrievalMethod("#EK", "http://www.w3.org/2001/04/xmlenc#EncryptedKey"));
            ed.KeyInfo = ki;

            // Create new XML document and put encrypted data into it.
            XmlDocument doc = new XmlDocument();
            XmlElement encryptionPropertyElement = (XmlElement)doc.CreateElement("EncryptionProperty", EncryptedXml.XmlEncNamespaceUrl);
            EncryptionProperty ep = new EncryptionProperty(encryptionPropertyElement);
            ed.AddProperty(ep);

            // Output the resulting XML information into a file.
            try
            {
                string path = @"c:\test\MyTest.xml";

                File.WriteAllText(path, ed.GetXml().OuterXml);
            }
            catch (IOException e)
            {
                Console.WriteLine("File IO error. {0}", e);
            }
        }
    }
}
Imports System.Security.Cryptography.Xml
Imports System.Xml
Imports System.IO


'/ This sample used the EncryptedData class to create a EncryptedData element
'/ and write it to an XML file. It demonstrates the use of CipherReference.
Module Module1

    Sub Main()
        ' Create a URI string.
        Dim uri As String = "http://www.woodgrovebank.com/document.xml"
        ' Create a Base64 transform. The input content retrieved from the
        ' URI should be Base64-decoded before other processing.
        Dim base64 As Transform = New XmlDsigBase64Transform
        Dim tc As New TransformChain
        tc.Add(base64)
        ' Create <CipherReference> information.
        Dim reference As CipherReference = New CipherReference(uri, tc)

        ' Create a new CipherData object.
        ' Note that you cannot assign both a CipherReference and a CipherValue
        ' to a CipherData object.
        Dim cd As CipherData = New CipherData(Reference)

        ' Create a new EncryptedData object.
        Dim ed As New EncryptedData

        'Add an encryption method to the object.
        ed.Id = "ED"
        ed.EncryptionMethod = New EncryptionMethod("http://www.w3.org/2001/04/xmlenc#aes128-cbc")
        ed.CipherData = cd

        'Add key information to the object.
        Dim ki As New KeyInfo
        ki.AddClause(New KeyInfoRetrievalMethod("#EK", "http://www.w3.org/2001/04/xmlenc#EncryptedKey"))
        ed.KeyInfo = ki

        ' Create new XML document and put encrypted data into it.
        Dim doc As New XmlDocument
        Dim encryptionPropertyElement As XmlElement = CType(doc.CreateElement("EncryptionProperty", EncryptedXml.XmlEncNamespaceUrl), XmlElement)
        Dim ep As New EncryptionProperty(encryptionPropertyElement)
        ed.AddProperty(ep)

        ' Output the resulting XML information into a file.
        Dim path As String = "c:\test\MyTest.xml"
        File.WriteAllText(path, ed.GetXml().OuterXml)
    End Sub

End Module

Uwagi

Ta klasa reprezentuje <CipherReference> element w szyfrowaniu XML. Identyfikuje źródło, które po przetworzeniu daje zaszyfrowane dane.

Rzeczywiste zaszyfrowane dane, do których odwołuje się element , <CipherReference> są uzyskiwane przez następujący proces. Właściwość <CipherReference> URI zawiera identyfikator URI (Uniform Resource Identifier), który jest wyłuszczany. <CipherReference> Jeśli element zawiera również łańcuch przekształceń, dane wynikające z wyłuszczenia identyfikatora URI są przekształcane zgodnie z określonymi w celu wygenerowania zaszyfrowanych danych. Jeśli na przykład zaszyfrowane dane są zakodowane w formacie base64 w dokumencie XML, przekształcenia określają wyrażenie XPath, a następnie dekodowanie base64, aby można było wyodrębnić zaszyfrowane dane.

Składnia identyfikatora URI i przekształceń jest podobna do składni podpisów cyfrowych XML. Jednak w podpisach cyfrowych XML przetwarzanie generowania i walidacji rozpoczyna się od tych samych danych źródłowych i wykonuje te przekształcenia w tej samej kolejności. W przypadku szyfrowania XML aplikacja odszyfrowywania ma tylko zaszyfrowane dane i określone przekształcenia. Przekształcenia są wyliczane w kolejności niezbędnej do uzyskania zaszyfrowanych danych.

Uwaga Domyślnie nie można wyłuszać odwołań szyfrowania z dokumentów z nieznanymi źródłami, takimi jak pliki z witryny sieci Web, ponieważ DocumentEvidence właściwość ma wartość null. Jeśli na przykład próbujesz odszyfrować plik zawierający <CipherReference> element, który odwołuje się do pliku w sieci Web, SecurityException zgłaszany jest wyjątek , nawet jeśli żądanie jest wykonywane przez w pełni zaufany zestaw.

Jeśli masz pewność, że dokumenty, które odszyfrowujesz, mogą być zaufane, możesz zmienić to zachowanie dla w pełni zaufanych aplikacji przy użyciu następującego kodu:

Evidence ev = new Evidence();  
ev.AddHost (new Zone(SecurityZone.MyComputer));  
EncryptedXml exml = new EncryptedXml(doc, ev);  

Konstruktory

CipherReference()

Inicjuje nowe wystąpienie klasy CipherReference.

CipherReference(String)

Inicjuje CipherReference nowe wystąpienie klasy przy użyciu określonego identyfikatora URI (Uniform Resource Identifier).

CipherReference(String, TransformChain)

Inicjuje CipherReference nowe wystąpienie klasy przy użyciu określonego identyfikatora URI (Uniform Resource Identifier) i przekształcania informacji o łańcuchu.

Właściwości

CacheValid

Pobiera wartość wskazującą, czy pamięć podręczna jest prawidłowa.

(Odziedziczone po EncryptedReference)
ReferenceType

Pobiera lub ustawia typ odwołania.

(Odziedziczone po EncryptedReference)
TransformChain

Pobiera lub ustawia łańcuch EncryptedReference przekształceń obiektu.

(Odziedziczone po EncryptedReference)
Uri

Pobiera lub ustawia identyfikator URI (Uniform Resource Identifier) EncryptedReference obiektu.

(Odziedziczone po EncryptedReference)

Metody

AddTransform(Transform)

Transform Dodaje obiekt do bieżącego EncryptedReference łańcucha przekształceń obiektu.

(Odziedziczone po EncryptedReference)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
GetXml()

Zwraca reprezentację CipherReference XML obiektu.

LoadXml(XmlElement)

Ładuje informacje XML do <CipherReference> elementu w szyfrowaniu XML.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy