CipherReference Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
<CipherReference>
Mewakili elemen dalam enkripsi XML. Kelas ini tidak dapat diwariskan.
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
- Warisan
Contoh
Contoh kode berikut membuat instans baru .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
Keterangan
Kelas ini mewakili <CipherReference>
elemen dalam enkripsi XML. Ini mengidentifikasi sumber yang, ketika diproses, menghasilkan data terenkripsi.
Data terenkripsi aktual yang <CipherReference>
direferensikan oleh diperoleh oleh proses berikut. Properti <CipherReference> URI
berisi Pengidentifikasi Sumber Daya Seragam (URI) yang didereferensikan.
<CipherReference>
Jika elemen juga berisi rantai transformasi, data yang dihasilkan dari dereferensi URI diubah sebagaimana ditentukan untuk menghasilkan data terenkripsi. Misalnya, jika data terenkripsi dikodekan base64 dalam dokumen XML, transformasi akan menentukan ekspresi JalurX diikuti dengan pendekodean base64 sehingga data terenkripsi dapat diekstrak.
Sintaks URI dan transformasi mirip dengan tanda tangan digital XML. Namun, dalam tanda tangan digital XML, pemrosesan pembuatan dan validasi dimulai dengan data sumber yang sama dan melakukan transformasi tersebut dalam urutan yang sama. Dalam enkripsi XML, aplikasi dekripsi hanya memiliki data terenkripsi dan transformasi yang ditentukan. Transformasi dijumlahkan dalam urutan yang diperlukan untuk mendapatkan data terenkripsi.
Catatan Secara default, Anda tidak dapat mendereferensikan referensi cipher dari dokumen dengan sumber yang tidak diketahui, seperti file dari situs Web, karena DocumentEvidence properti null. Misalnya, ketika Anda mencoba mendekripsi file yang berisi elemen yang mereferensikan <CipherReference>
file di Web, SecurityException dilemparkan, bahkan jika permintaan dibuat oleh rakitan yang sepenuhnya tepercaya.
Jika Anda yakin dokumen yang Anda dekripsi dapat dipercaya, Anda dapat mengubah perilaku ini untuk aplikasi yang sepenuhnya tepercaya dengan menggunakan kode berikut:
Evidence ev = new Evidence();
ev.AddHost (new Zone(SecurityZone.MyComputer));
EncryptedXml exml = new EncryptedXml(doc, ev);
Konstruktor
CipherReference() |
Menginisialisasi instans baru kelas CipherReference. |
CipherReference(String) |
Menginisialisasi instans CipherReference baru kelas menggunakan Pengidentifikasi Sumber Daya Seragam (URI) yang ditentukan. |
CipherReference(String, TransformChain) |
Menginisialisasi instans CipherReference baru kelas menggunakan Pengidentifikasi Sumber Daya Seragam (URI) yang ditentukan dan mengubah informasi rantai. |
Properti
CacheValid |
Mendapatkan nilai yang menunjukkan apakah cache valid. (Diperoleh dari EncryptedReference) |
ReferenceType |
Mendapatkan atau mengatur jenis referensi. (Diperoleh dari EncryptedReference) |
TransformChain |
Mendapatkan atau mengatur rantai EncryptedReference transformasi objek. (Diperoleh dari EncryptedReference) |
Uri |
Mendapatkan atau mengatur Pengidentifikasi Sumber Daya Seragam (URI) objek EncryptedReference . (Diperoleh dari EncryptedReference) |
Metode
AddTransform(Transform) |
Transform Menambahkan objek ke rantai EncryptedReference transformasi objek saat ini. (Diperoleh dari EncryptedReference) |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
GetXml() |
Mengembalikan representasi XML objek CipherReference . |
LoadXml(XmlElement) |
Memuat informasi XML ke |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |