Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / NetMsmqSecurity.cs / 1 / NetMsmqSecurity.cs
//----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------------------
namespace System.ServiceModel
{
using System.Diagnostics;
using System.Net.Security;
using System.ServiceModel.Channels;
using Config = System.ServiceModel.Configuration;
public sealed class NetMsmqSecurity
{
internal const NetMsmqSecurityMode DefaultMode = NetMsmqSecurityMode.Transport;
NetMsmqSecurityMode mode;
MsmqTransportSecurity transportSecurity;
MessageSecurityOverMsmq messageSecurity;
internal NetMsmqSecurity() : this(DefaultMode, null, null)
{
}
internal NetMsmqSecurity(NetMsmqSecurityMode mode) : this(mode, null, null)
{
}
NetMsmqSecurity(NetMsmqSecurityMode mode, MsmqTransportSecurity transportSecurity, MessageSecurityOverMsmq messageSecurity)
{
DiagnosticUtility.DebugAssert(NetMsmqSecurityModeHelper.IsDefined(mode), string.Format("Invalid NetMsmqSecurityMode value: {0}.", mode.ToString()));
this.mode = mode;
this.transportSecurity = transportSecurity == null ? new MsmqTransportSecurity() : transportSecurity;
this.messageSecurity = messageSecurity == null ? new MessageSecurityOverMsmq() : messageSecurity;
}
public NetMsmqSecurityMode Mode
{
get { return this.mode; }
set
{
if (!NetMsmqSecurityModeHelper.IsDefined(value))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value"));
}
this.mode = value;
}
}
public MsmqTransportSecurity Transport
{
get
{
if (this.transportSecurity == null)
this.transportSecurity = new MsmqTransportSecurity();
return this.transportSecurity;
}
}
public MessageSecurityOverMsmq Message
{
get
{
if (this.messageSecurity == null)
this.messageSecurity = new MessageSecurityOverMsmq();
return this.messageSecurity;
}
}
internal void ConfigureTransportSecurity(MsmqBindingElementBase msmq)
{
if (this.mode == NetMsmqSecurityMode.Transport || this.mode == NetMsmqSecurityMode.Both)
msmq.MsmqTransportSecurity = this.Transport;
else
msmq.MsmqTransportSecurity.Disable();
}
internal static bool IsConfiguredTransportSecurity(MsmqTransportBindingElement msmq, out UnifiedSecurityMode mode)
{
if (msmq == null)
{
mode = UnifiedSecurityMode.None;
return false;
}
if (msmq.MsmqTransportSecurity.Enabled)
{
mode = UnifiedSecurityMode.Transport | UnifiedSecurityMode.Both;
}
else
{
mode = UnifiedSecurityMode.None | UnifiedSecurityMode.Message;
}
return true;
}
internal SecurityBindingElement CreateMessageSecurity()
{
return this.Message.CreateSecurityBindingElement();
}
//
internal static bool TryCreate(SecurityBindingElement sbe, NetMsmqSecurityMode mode, out NetMsmqSecurity security)
{
security = null;
MessageSecurityOverMsmq messageSecurity;
if (!MessageSecurityOverMsmq.TryCreate(sbe, out messageSecurity))
messageSecurity = null;
security = new NetMsmqSecurity(mode, null, messageSecurity);
return sbe == null || Config.SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(), sbe, false);
}
}
}
// 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
- PackWebRequestFactory.cs
- NetSectionGroup.cs
- TraceListeners.cs
- DiscoveryDocumentLinksPattern.cs
- PrintPageEvent.cs
- PointIndependentAnimationStorage.cs
- COMException.cs
- PagesSection.cs
- diagnosticsswitches.cs
- WindowsGraphics2.cs
- SmtpReplyReader.cs
- DBCSCodePageEncoding.cs
- UpDownBase.cs
- HtmlInputSubmit.cs
- PageVisual.cs
- StorageEntitySetMapping.cs
- DataBoundControlAdapter.cs
- SingleKeyFrameCollection.cs
- EntityConnectionStringBuilderItem.cs
- PeerCollaborationPermission.cs
- WebResponse.cs
- FontFamily.cs
- Quaternion.cs
- UpDownBase.cs
- ExpressionBuilderCollection.cs
- ConfigXmlCDataSection.cs
- RightsManagementProvider.cs
- IncrementalReadDecoders.cs
- DetailsViewUpdateEventArgs.cs
- StorageTypeMapping.cs
- ImageSource.cs
- DrawingCollection.cs
- SuppressMergeCheckAttribute.cs
- XmlNodeChangedEventManager.cs
- PropertyValueUIItem.cs
- XamlInt32CollectionSerializer.cs
- UnsafeNativeMethods.cs
- Point4DConverter.cs
- ParseChildrenAsPropertiesAttribute.cs
- CellConstantDomain.cs
- DesignerActionPanel.cs
- InfoCardArgumentException.cs
- UDPClient.cs
- SchemaImporterExtensionElementCollection.cs
- _HeaderInfo.cs
- MonitoringDescriptionAttribute.cs
- TimeoutValidationAttribute.cs
- ViewValidator.cs
- EntityDataSourceDataSelectionPanel.cs
- MessageBox.cs
- FlowDocumentView.cs
- KnownTypesProvider.cs
- AffineTransform3D.cs
- wmiprovider.cs
- IsolatedStorage.cs
- DesignerSerializationVisibilityAttribute.cs
- FreeFormDesigner.cs
- KeyGestureValueSerializer.cs
- ItemDragEvent.cs
- XPathNodeList.cs
- CodeTypeReference.cs
- WebBrowserDesigner.cs
- HttpPostClientProtocol.cs
- TableProviderWrapper.cs
- NativeMethodsCLR.cs
- DesignTimeSiteMapProvider.cs
- IndexedEnumerable.cs
- ApplicationSettingsBase.cs
- SmtpTransport.cs
- StylusButton.cs
- WebConfigurationHostFileChange.cs
- LinkedResourceCollection.cs
- ContainsSearchOperator.cs
- LogPolicy.cs
- BuildManager.cs
- MimeMapping.cs
- SoapAttributeOverrides.cs
- XmlSchemaDatatype.cs
- SerializationSectionGroup.cs
- AsyncStreamReader.cs
- UIntPtr.cs
- OleDbPropertySetGuid.cs
- QilExpression.cs
- PassportPrincipal.cs
- TransformerTypeCollection.cs
- HeaderCollection.cs
- FormViewInsertEventArgs.cs
- COM2ExtendedUITypeEditor.cs
- ItemsChangedEventArgs.cs
- ClientTargetSection.cs
- IgnoreDeviceFilterElementCollection.cs
- DataGridViewRowPrePaintEventArgs.cs
- SerializationInfoEnumerator.cs
- XmlSortKey.cs
- Parsers.cs
- AnonymousIdentificationModule.cs
- SqlNodeTypeOperators.cs
- HttpDictionary.cs
- KeyConstraint.cs
- XamlWriter.cs