Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / WSSecurityOneDotOneReceiveSecurityHeader.cs / 1 / WSSecurityOneDotOneReceiveSecurityHeader.cs
//----------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Security
{
using System.IO;
using System.ServiceModel.Channels;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.IdentityModel.Claims;
using System.IdentityModel.Policy;
using System.IdentityModel.Tokens;
using System.Security.Cryptography;
using System.ServiceModel.Security.Tokens;
using System.Text;
using System.Xml;
using System.ServiceModel.Diagnostics;
class WSSecurityOneDotOneReceiveSecurityHeader : WSSecurityOneDotZeroReceiveSecurityHeader
{
public WSSecurityOneDotOneReceiveSecurityHeader(Message message, string actor, bool mustUnderstand, bool relay,
SecurityStandardsManager standardsManager,
SecurityAlgorithmSuite algorithmSuite,
int headerIndex, MessageDirection direction)
: base(message, actor, mustUnderstand, relay, standardsManager, algorithmSuite, headerIndex, direction)
{
}
protected override DecryptedHeader DecryptHeader(XmlDictionaryReader reader, WrappedKeySecurityToken wrappedKeyToken)
{
EncryptedHeaderXml headerXml = new EncryptedHeaderXml(this.Version);
headerXml.SecurityTokenSerializer = this.StandardsManager.SecurityTokenSerializer;
headerXml.ReadFrom(reader, MaxReceivedMessageSize);
// The Encrypted Headers MustUnderstand, Relay and Actor attributes should match the
// Security Headers value.
if (headerXml.MustUnderstand != this.MustUnderstand)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.EncryptedHeaderAttributeMismatch, XD.MessageDictionary.MustUnderstand.Value, headerXml.MustUnderstand, this.MustUnderstand)));
if (headerXml.Relay != this.Relay)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.EncryptedHeaderAttributeMismatch, XD.Message12Dictionary.Relay.Value, headerXml.Relay, this.Relay)));
if (headerXml.Actor != this.Actor)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.EncryptedHeaderAttributeMismatch, this.Version.Envelope.DictionaryActor, headerXml.Actor, this.Actor)));
SecurityToken token;
if (wrappedKeyToken == null)
{
token = ResolveKeyIdentifier(headerXml.KeyIdentifier, this.CombinedPrimaryTokenResolver, false);
}
else
{
token = wrappedKeyToken;
}
RecordEncryptionToken(token);
using (SymmetricAlgorithm algorithm = CreateDecryptionAlgorithm(token, headerXml.EncryptionMethod, this.AlgorithmSuite))
{
headerXml.SetUpDecryption(algorithm);
return new DecryptedHeader(
headerXml.GetDecryptedBuffer(),
this.SecurityVerifiedMessage.GetEnvelopeAttributes(), this.SecurityVerifiedMessage.GetHeaderAttributes(),
this.Version, this.StandardsManager.IdManager, this.ReaderQuotas);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProgressPage.cs
- ProtocolsConfigurationEntry.cs
- TextTreePropertyUndoUnit.cs
- Menu.cs
- LassoHelper.cs
- AnnouncementEndpoint.cs
- CodeAttributeDeclaration.cs
- VersionedStreamOwner.cs
- ProcessRequestArgs.cs
- OracleEncoding.cs
- QilSortKey.cs
- IndentedWriter.cs
- XPathSelfQuery.cs
- HeaderUtility.cs
- GrabHandleGlyph.cs
- PlatformCulture.cs
- DataMemberAttribute.cs
- Filter.cs
- RequestSecurityTokenResponse.cs
- SiteMapDesignerDataSourceView.cs
- CapabilitiesRule.cs
- WebRequest.cs
- MatrixAnimationBase.cs
- BaseWebProxyFinder.cs
- JsonSerializer.cs
- ComAwareEventInfo.cs
- SafeViewOfFileHandle.cs
- QuotedPairReader.cs
- ClientTarget.cs
- GridViewColumn.cs
- SqlConnectionManager.cs
- _Rfc2616CacheValidators.cs
- FixedSchema.cs
- dbenumerator.cs
- SafeHandle.cs
- DocumentGridPage.cs
- TokenizerHelper.cs
- WebPermission.cs
- HtmlInputSubmit.cs
- Point.cs
- FixedSchema.cs
- StrokeNodeOperations2.cs
- TemplatedEditableDesignerRegion.cs
- CultureInfoConverter.cs
- DataSourceExpression.cs
- DBSchemaRow.cs
- GridViewDesigner.cs
- UrlMappingsSection.cs
- WebControl.cs
- StylusPointPropertyInfo.cs
- MetaType.cs
- DebugView.cs
- RowUpdatedEventArgs.cs
- BoundField.cs
- NumericUpDownAccelerationCollection.cs
- NameSpaceExtractor.cs
- NavigationProperty.cs
- StringStorage.cs
- MDIControlStrip.cs
- FilterableAttribute.cs
- ContentElementAutomationPeer.cs
- ValidatingPropertiesEventArgs.cs
- SemaphoreFullException.cs
- ImportCatalogPart.cs
- CollectionsUtil.cs
- DbConnectionPoolGroupProviderInfo.cs
- DbSourceParameterCollection.cs
- SourceChangedEventArgs.cs
- CodeBlockBuilder.cs
- NTAccount.cs
- IpcPort.cs
- HttpListener.cs
- HTMLTagNameToTypeMapper.cs
- TargetParameterCountException.cs
- NetDataContractSerializer.cs
- DispatcherTimer.cs
- SecurityIdentifierElementCollection.cs
- CodeNamespaceCollection.cs
- SerialReceived.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- TextAnchor.cs
- Wizard.cs
- RegexGroup.cs
- StyleBamlRecordReader.cs
- DBSqlParserColumn.cs
- RecognizerStateChangedEventArgs.cs
- OpacityConverter.cs
- PrinterResolution.cs
- TypeConverterValueSerializer.cs
- ResXDataNode.cs
- ImageBrush.cs
- BordersPage.cs
- XmlUtf8RawTextWriter.cs
- UserPersonalizationStateInfo.cs
- TypeDependencyAttribute.cs
- WorkflowTimerService.cs
- CompilerResults.cs
- ConfigDefinitionUpdates.cs
- ColumnTypeConverter.cs
- DbCommandTree.cs