| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- //------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------
- namespace System.ServiceModel.Security
- {
- using System.Diagnostics;
- using System.ServiceModel.Channels;
- using System.ServiceModel;
- using System.Globalization;
- using System.Xml;
- using System.IO;
- using ISecurityElement = System.IdentityModel.ISecurityElement;
- sealed class EncryptedHeader : DelegatingHeader
- {
- EncryptedHeaderXml headerXml;
- string name;
- string namespaceUri;
- MessageVersion version;
- public EncryptedHeader(MessageHeader plainTextHeader, EncryptedHeaderXml headerXml, string name, string namespaceUri, MessageVersion version)
- : base(plainTextHeader)
- {
- if (!headerXml.HasId || headerXml.Id == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.EncryptedHeaderXmlMustHaveId)));
- }
- this.headerXml = headerXml;
- this.name = name;
- this.namespaceUri = namespaceUri;
- this.version = version;
- }
- public string Id
- {
- get { return this.headerXml.Id; }
- }
- public override string Name
- {
- get { return this.name; }
- }
- public override string Namespace
- {
- get { return this.namespaceUri; }
- }
- public override string Actor
- {
- get
- {
- return this.headerXml.Actor;
- }
- }
- public override bool MustUnderstand
- {
- get
- {
- return this.headerXml.MustUnderstand;
- }
- }
- public override bool Relay
- {
- get
- {
- return this.headerXml.Relay;
- }
- }
- internal MessageHeader OriginalHeader
- {
- get { return this.InnerHeader; }
- }
- public override bool IsMessageVersionSupported(MessageVersion messageVersion)
- {
- return this.version.Equals( messageVersion );
- }
- protected override void OnWriteStartHeader(XmlDictionaryWriter writer, MessageVersion messageVersion)
- {
- if (!IsMessageVersionSupported(messageVersion))
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.MessageHeaderVersionNotSupported, String.Format(CultureInfo.InvariantCulture, "{0}:{1}", this.Namespace, this.Name), version.ToString()), "version"));
- }
- this.headerXml.WriteHeaderElement(writer);
- WriteHeaderAttributes(writer, messageVersion);
- this.headerXml.WriteHeaderId(writer);
- }
- protected override void OnWriteHeaderContents(XmlDictionaryWriter writer, MessageVersion messageVersion)
- {
- this.headerXml.WriteHeaderContents(writer);
- }
- }
- }
|