CipherReference 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 <CipherReference> element in XML-versleuteling. Deze klasse kan niet worden overgenomen.
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
- Overname
Voorbeelden
In het volgende codevoorbeeld wordt een nieuw exemplaar van CipherReference.
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
Opmerkingen
Deze klasse vertegenwoordigt het <CipherReference> element in XML-versleuteling. Het identificeert een bron die, wanneer verwerkt, de versleutelde gegevens oplevert.
De werkelijke versleutelde gegevens waarnaar wordt verwezen, <CipherReference> worden verkregen door het volgende proces. De <CipherReference> URI eigenschap bevat een URI (Uniform Resource Identifier) die wordt gededucteerd. Als het <CipherReference> element ook een transformatieketen bevat, worden de gegevens die het gevolg zijn van het uitstellen van de URI, getransformeerd zoals opgegeven om de versleutelde gegevens te produceren. Als de versleutelde gegevens bijvoorbeeld base64-gecodeerd zijn in een XML-document, geven de transformaties een XPath-expressie op, gevolgd door een base64-decodering, zodat de versleutelde gegevens kunnen worden geëxtraheerd.
De syntaxis van de URI en transformaties is vergelijkbaar met die van digitale XML-handtekeningen. In XML-digitale handtekeningen beginnen zowel generatie- als validatieverwerking echter met dezelfde brongegevens en voeren deze transformatie in dezelfde volgorde uit. In XML-versleuteling heeft de ontsleutelingstoepassing alleen de versleutelde gegevens en de opgegeven transformaties. De transformaties worden opgesomd in de volgorde die nodig is om de versleutelde gegevens te verkrijgen.
Opmerking Standaard kunt u verwijzingen naar coderingsverwijzingen uit documenten met onbekende bronnen, zoals bestanden van een website, niet de deducteren, omdat de DocumentEvidence eigenschap null is. Wanneer u bijvoorbeeld probeert een bestand te ontsleutelen met een <CipherReference> element dat verwijst naar een bestand op het web, wordt er een SecurityException gegenereerd, zelfs als de aanvraag wordt gedaan door een volledig vertrouwde assembly.
Als u zeker weet dat de documenten die u ontsleutelt kunnen worden vertrouwd, kunt u dit gedrag voor volledig vertrouwde toepassingen wijzigen met behulp van de volgende code:
Evidence ev = new Evidence();
ev.AddHost (new Zone(SecurityZone.MyComputer));
EncryptedXml exml = new EncryptedXml(doc, ev);
Constructors
| Name | Description |
|---|---|
| CipherReference() |
Initialiseert een nieuw exemplaar van de CipherReference klasse. |
| CipherReference(String, TransformChain) |
Initialiseert een nieuw exemplaar van de CipherReference klasse met behulp van de opgegeven URI (Uniform Resource Identifier) en transformatieketeninformatie. |
| CipherReference(String) |
Initialiseert een nieuw exemplaar van de CipherReference klasse met behulp van de opgegeven URI (Uniform Resource Identifier). |
Eigenschappen
| Name | Description |
|---|---|
| CacheValid |
Hiermee wordt een waarde opgehaald die aangeeft of de cache geldig is. (Overgenomen van EncryptedReference) |
| ReferenceType |
Hiermee wordt een verwijzingstype opgehaald of ingesteld. (Overgenomen van EncryptedReference) |
| TransformChain |
Hiermee haalt u de transformatieketen van een EncryptedReference object op of stelt u deze in. (Overgenomen van EncryptedReference) |
| Uri |
Hiermee wordt de URI (Uniform Resource Identifier) van een EncryptedReference object opgehaald of ingesteld. (Overgenomen van EncryptedReference) |
Methoden
| Name | Description |
|---|---|
| AddTransform(Transform) |
Hiermee voegt u een Transform object toe aan de huidige transformatieketen van een EncryptedReference object. (Overgenomen van EncryptedReference) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| GetXml() |
Retourneert de XML-weergave van een CipherReference object. |
| LoadXml(XmlElement) |
Hiermee wordt XML-informatie in het |
| 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) |