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
- TableLayoutStyle.cs
- HMACMD5.cs
- RequestNavigateEventArgs.cs
- StaticFileHandler.cs
- UnaryExpression.cs
- RequestTimeoutManager.cs
- bidPrivateBase.cs
- ApplicationId.cs
- AppSettingsReader.cs
- NetworkAddressChange.cs
- X509IssuerSerialKeyIdentifierClause.cs
- AuthenticationService.cs
- _DomainName.cs
- HashCodeCombiner.cs
- PageCache.cs
- PageCache.cs
- Enlistment.cs
- EntityParameter.cs
- RbTree.cs
- GeometryCombineModeValidation.cs
- Point3D.cs
- TabletDevice.cs
- ProcessHostMapPath.cs
- AttributeTable.cs
- XmlBinaryWriter.cs
- ToolBarButtonClickEvent.cs
- MenuDesigner.cs
- Graphics.cs
- PreviewPageInfo.cs
- TextContainerChangedEventArgs.cs
- TextOutput.cs
- TileBrush.cs
- XmlSerializerVersionAttribute.cs
- BuildProvidersCompiler.cs
- WindowsPen.cs
- DateTimeUtil.cs
- ResetableIterator.cs
- DragStartedEventArgs.cs
- SQLBoolean.cs
- HMACSHA256.cs
- SelectionWordBreaker.cs
- ValidateNames.cs
- TargetConverter.cs
- LocatorBase.cs
- ObjectListGeneralPage.cs
- EntityDataSourceView.cs
- Random.cs
- MultiByteCodec.cs
- WebBrowserPermission.cs
- SafeCryptContextHandle.cs
- ScrollBar.cs
- Debug.cs
- GlobalizationAssembly.cs
- WaitingCursor.cs
- ModuleConfigurationInfo.cs
- DataStorage.cs
- TextViewBase.cs
- FormatVersion.cs
- GB18030Encoding.cs
- LicenseContext.cs
- EditingCoordinator.cs
- FormViewDeletedEventArgs.cs
- HexParser.cs
- WebControlsSection.cs
- XmlRootAttribute.cs
- HtmlEncodedRawTextWriter.cs
- RoamingStoreFile.cs
- precedingquery.cs
- PointUtil.cs
- TransformCollection.cs
- ArcSegment.cs
- SafeViewOfFileHandle.cs
- Quad.cs
- LinkedList.cs
- SystemException.cs
- ByteAnimationUsingKeyFrames.cs
- ToolStripKeyboardHandlingService.cs
- ContextDataSourceView.cs
- XamlTypeMapper.cs
- SqlCommandSet.cs
- ConvertersCollection.cs
- ExpressionVisitor.cs
- DataMemberListEditor.cs
- GridViewEditEventArgs.cs
- CancelEventArgs.cs
- BmpBitmapDecoder.cs
- Track.cs
- ColumnMapVisitor.cs
- InputScope.cs
- Overlapped.cs
- FrameworkObject.cs
- ColumnMapTranslator.cs
- ControlDesigner.cs
- WindowsMenu.cs
- TypedReference.cs
- FormViewUpdateEventArgs.cs
- DesignTimeTemplateParser.cs
- ListBoxDesigner.cs
- SectionInput.cs
- SettingsPropertyValueCollection.cs