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
- DependencyObjectProvider.cs
- RestHandlerFactory.cs
- WindowsRebar.cs
- ViewGenResults.cs
- Solver.cs
- LoginCancelEventArgs.cs
- SizeLimitedCache.cs
- ConnectionManagementElementCollection.cs
- XmlChoiceIdentifierAttribute.cs
- NavigationFailedEventArgs.cs
- VectorCollectionValueSerializer.cs
- RenderData.cs
- StorageInfo.cs
- Mouse.cs
- SerializationInfoEnumerator.cs
- Run.cs
- MsmqBindingMonitor.cs
- MediaElement.cs
- ToolStripItemRenderEventArgs.cs
- XmlFormatReaderGenerator.cs
- HttpChannelBindingToken.cs
- BmpBitmapDecoder.cs
- RtfToken.cs
- StylusCollection.cs
- DbFunctionCommandTree.cs
- BuilderPropertyEntry.cs
- CapiNative.cs
- EncoderParameter.cs
- InvokeDelegate.cs
- ProofTokenCryptoHandle.cs
- Context.cs
- CompositeDuplexElement.cs
- FormParameter.cs
- QilFactory.cs
- QilReplaceVisitor.cs
- ToolStripItemCollection.cs
- PasswordBoxAutomationPeer.cs
- PrimaryKeyTypeConverter.cs
- DependencyPropertyKind.cs
- Unit.cs
- BitmapImage.cs
- DesignUtil.cs
- DataGridViewRowCancelEventArgs.cs
- DbConnectionInternal.cs
- EventListener.cs
- PropertyOrder.cs
- Msmq.cs
- ProxyHwnd.cs
- ReversePositionQuery.cs
- MarginsConverter.cs
- LocalValueEnumerator.cs
- XmlDictionaryReader.cs
- TableLayoutPanelCellPosition.cs
- BaseParagraph.cs
- HostingEnvironment.cs
- UpWmlMobileTextWriter.cs
- HttpResponseWrapper.cs
- PrincipalPermission.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- BinaryFormatterWriter.cs
- StructureChangedEventArgs.cs
- IISUnsafeMethods.cs
- MouseButton.cs
- StringBuilder.cs
- IdleTimeoutMonitor.cs
- ChangeTracker.cs
- ParallelTimeline.cs
- SafeBitVector32.cs
- DynamicPropertyHolder.cs
- SslStream.cs
- RootAction.cs
- RadioButtonFlatAdapter.cs
- SecureConversationSecurityTokenParameters.cs
- DPCustomTypeDescriptor.cs
- BitmapEffectDrawingContent.cs
- DataGridColumnHeaderAutomationPeer.cs
- DelegateSerializationHolder.cs
- DeviceContexts.cs
- DataGridViewComboBoxCell.cs
- NativeMethods.cs
- XPathNodeList.cs
- EdmEntityTypeAttribute.cs
- HeaderUtility.cs
- ObjectStateManager.cs
- ResourceContainer.cs
- OracleFactory.cs
- ConnectionsZoneDesigner.cs
- HtmlInputReset.cs
- CheckBox.cs
- SerializationInfoEnumerator.cs
- DoubleLinkList.cs
- FormViewRow.cs
- ProtectedProviderSettings.cs
- updateconfighost.cs
- TableProviderWrapper.cs
- RelativeSource.cs
- EntityType.cs
- ExcludePathInfo.cs
- Convert.cs
- HttpAsyncResult.cs