You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,133 @@
|
||||
//------------------------------------------------------------
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//------------------------------------------------------------
|
||||
|
||||
namespace System.ServiceModel.Security
|
||||
{
|
||||
using System.Xml;
|
||||
using System.ServiceModel.Channels;
|
||||
using System.ServiceModel;
|
||||
|
||||
sealed class DecryptedHeader : ReadableMessageHeader
|
||||
{
|
||||
XmlDictionaryReader cachedReader;
|
||||
readonly byte[] decryptedBuffer;
|
||||
readonly string id;
|
||||
readonly string name;
|
||||
readonly string namespaceUri;
|
||||
readonly string actor;
|
||||
readonly bool mustUnderstand;
|
||||
readonly bool relay;
|
||||
readonly bool isRefParam;
|
||||
readonly MessageVersion version;
|
||||
readonly XmlAttributeHolder[] envelopeAttributes;
|
||||
readonly XmlAttributeHolder[] headerAttributes;
|
||||
readonly XmlDictionaryReaderQuotas quotas;
|
||||
|
||||
public DecryptedHeader(byte[] decryptedBuffer,
|
||||
XmlAttributeHolder[] envelopeAttributes, XmlAttributeHolder[] headerAttributes,
|
||||
MessageVersion version, SignatureTargetIdManager idManager, XmlDictionaryReaderQuotas quotas)
|
||||
{
|
||||
if (quotas == null)
|
||||
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("quotas");
|
||||
|
||||
this.decryptedBuffer = decryptedBuffer;
|
||||
this.version = version;
|
||||
this.envelopeAttributes = envelopeAttributes;
|
||||
this.headerAttributes = headerAttributes;
|
||||
this.quotas = quotas;
|
||||
|
||||
XmlDictionaryReader reader = CreateReader();
|
||||
reader.MoveToStartElement();
|
||||
|
||||
this.name = reader.LocalName;
|
||||
this.namespaceUri = reader.NamespaceURI;
|
||||
MessageHeader.GetHeaderAttributes(reader, version, out this.actor, out this.mustUnderstand, out this.relay, out this.isRefParam);
|
||||
this.id = idManager.ExtractId(reader);
|
||||
|
||||
this.cachedReader = reader;
|
||||
}
|
||||
|
||||
public override string Actor
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.actor;
|
||||
}
|
||||
}
|
||||
|
||||
public string Id
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.id;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool IsReferenceParameter
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.isRefParam;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool MustUnderstand
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.mustUnderstand;
|
||||
}
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
|
||||
public override string Namespace
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.namespaceUri;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Relay
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.relay;
|
||||
}
|
||||
}
|
||||
|
||||
XmlDictionaryReader CreateReader()
|
||||
{
|
||||
return ContextImportHelper.CreateSplicedReader(
|
||||
this.decryptedBuffer,
|
||||
this.envelopeAttributes,
|
||||
this.headerAttributes, null, this.quotas);
|
||||
}
|
||||
|
||||
public override XmlDictionaryReader GetHeaderReader()
|
||||
{
|
||||
if (this.cachedReader != null)
|
||||
{
|
||||
XmlDictionaryReader cachedReader = this.cachedReader;
|
||||
this.cachedReader = null;
|
||||
return cachedReader;
|
||||
}
|
||||
XmlDictionaryReader reader = CreateReader();
|
||||
reader.MoveToContent();
|
||||
return reader;
|
||||
}
|
||||
|
||||
public override bool IsMessageVersionSupported(MessageVersion messageVersion)
|
||||
{
|
||||
return this.version.Equals( messageVersion );
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user