Aracılığıyla paylaş


CipherReference Sınıf

Tanım

XML şifrelemesindeki <CipherReference> öğesini temsil eder. Bu sınıf devralınamaz.

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

Örnekler

Aşağıdaki kod örneği yeni bir örneği CipherReferenceoluşturur.

#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

Açıklamalar

Bu sınıf, XML şifrelemesindeki <CipherReference> öğesini temsil eder. İşlendiğinde şifrelenmiş verileri veren bir kaynak tanımlar.

tarafından <CipherReference> başvuruda bulunılan gerçek şifrelenmiş veriler aşağıdaki işlemle elde edilir. özelliği, <CipherReference> URI başvurulmayan bir Tekdüzen Kaynak Tanımlayıcısı (URI) içerir. <CipherReference> Öğesi bir dönüştürme zinciri de içeriyorsa, URI başvurusunun geri yüklenmesinden kaynaklanan veriler şifrelenmiş verileri üretmek için belirtildiği gibi dönüştürülür. Örneğin, şifrelenmiş veriler bir XML belgesi içinde base64 ile kodlanmışsa, dönüşümler bir XPath ifadesi ve ardından base64 kod çözmesi belirterek şifrelenmiş verilerin ayıklanabilmesini sağlar.

URI ve dönüşümlerin söz dizimi, XML dijital imzalarının söz dizimine benzer. Ancak, XML dijital imzalarında hem oluşturma hem de doğrulama işlemi aynı kaynak verilerle başlar ve bu dönüşümü aynı sırada gerçekleştirir. XML şifrelemesinde, şifresi çözülen uygulama yalnızca şifrelenmiş verilere ve belirtilen dönüşümlere sahiptir. Dönüşümler, şifrelenmiş verileri almak için gereken sırayla numaralandırılır.

Not Varsayılan olarak, özelliği null olduğundanDocumentEvidence, web sitesindeki dosyalar gibi bilinmeyen kaynaklara sahip belgelerden şifreleme başvurularını geri alamazsınız. Örneğin, Web'de bir dosyaya başvuran öğe içeren bir <CipherReference> dosyanın şifresini çözmeyi denediğinizde, SecurityException istek tam olarak güvenilen bir derleme tarafından yapılmış olsa bile oluşturulur.

Şifresini çözebileceğiniz belgelerin güvenilir olduğundan eminseniz, aşağıdaki kodu kullanarak tam olarak güvenilen uygulamalar için bu davranışı değiştirebilirsiniz:

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

Oluşturucular

CipherReference()

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

CipherReference(String)

Belirtilen Tekdüzen Kaynak Tanımlayıcısı'nı CipherReference (URI) kullanarak sınıfının yeni bir örneğini başlatır.

CipherReference(String, TransformChain)

Belirtilen Tekdüzen Kaynak Tanımlayıcısı (URI) ve dönüştürme zinciri bilgilerini kullanarak sınıfının yeni bir örneğini CipherReference başlatır.

Özellikler

CacheValid

Önbelleğin geçerli olup olmadığını gösteren bir değer alır.

(Devralındığı yer: EncryptedReference)
ReferenceType

Başvuru türünü alır veya ayarlar.

(Devralındığı yer: EncryptedReference)
TransformChain

Bir EncryptedReference nesnenin dönüştürme zincirini alır veya ayarlar.

(Devralındığı yer: EncryptedReference)
Uri

Bir EncryptedReference nesnenin Tekdüzen Kaynak Tanımlayıcısını (URI) alır veya ayarlar.

(Devralındığı yer: EncryptedReference)

Yöntemler

AddTransform(Transform)

Bir Transform nesnenin geçerli dönüştürme zincirine nesne EncryptedReference ekler.

(Devralındığı yer: EncryptedReference)
Equals(Object)

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

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

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

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

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

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

Bir CipherReference nesnenin XML gösterimini döndürür.

LoadXml(XmlElement)

XML bilgilerini XML şifrelemesindeki <CipherReference> öğesine 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