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
- DefaultSettingsSection.cs
- ObjectContext.cs
- XmlLanguage.cs
- Memoizer.cs
- SortQuery.cs
- TemplateEditingVerb.cs
- SQLSingle.cs
- MulticastNotSupportedException.cs
- MessagePropertyDescriptionCollection.cs
- assemblycache.cs
- StreamUpdate.cs
- URLString.cs
- RangeValueProviderWrapper.cs
- DynamicExpression.cs
- DataGridLength.cs
- MembershipUser.cs
- ColumnHeaderCollectionEditor.cs
- OpenCollectionAsyncResult.cs
- ImageAnimator.cs
- ExtensionSimplifierMarkupObject.cs
- FrugalList.cs
- webproxy.cs
- FormViewDesigner.cs
- MenuItemAutomationPeer.cs
- ListViewInsertedEventArgs.cs
- PropertyBuilder.cs
- ProcessingInstructionAction.cs
- WindowsSysHeader.cs
- OptimisticConcurrencyException.cs
- MarkerProperties.cs
- SqlClientWrapperSmiStream.cs
- GeneratedCodeAttribute.cs
- TextRunCache.cs
- GridViewRowEventArgs.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- MobileErrorInfo.cs
- GridViewRowCollection.cs
- SemanticKeyElement.cs
- CLSCompliantAttribute.cs
- ControlBuilder.cs
- _Semaphore.cs
- LineUtil.cs
- EdmItemError.cs
- iisPickupDirectory.cs
- OleAutBinder.cs
- QueryRewriter.cs
- Convert.cs
- DocumentPageTextView.cs
- XmlWrappingWriter.cs
- MobileContainerDesigner.cs
- ClientSettingsProvider.cs
- StylusDevice.cs
- TextWriterEngine.cs
- CollectionContainer.cs
- ScrollableControlDesigner.cs
- DefinitionBase.cs
- GridEntryCollection.cs
- AuthenticationConfig.cs
- PathFigureCollection.cs
- FormatterServicesNoSerializableCheck.cs
- UpdatePanel.cs
- ReadOnlyHierarchicalDataSource.cs
- Menu.cs
- RawStylusInputCustomData.cs
- FixedSOMTable.cs
- NullableBoolConverter.cs
- SwitchAttribute.cs
- SchemaInfo.cs
- NumberFunctions.cs
- SHA1Cng.cs
- X509ChainPolicy.cs
- HtmlObjectListAdapter.cs
- XPathNodePointer.cs
- WebHttpElement.cs
- FileUtil.cs
- TabItem.cs
- SuspendDesigner.cs
- PerspectiveCamera.cs
- PointCollectionValueSerializer.cs
- FileSystemEventArgs.cs
- RuntimeIdentifierPropertyAttribute.cs
- DbProviderFactories.cs
- MainMenu.cs
- ModuleConfigurationInfo.cs
- SqlTypeConverter.cs
- JapaneseLunisolarCalendar.cs
- TypeConverterAttribute.cs
- activationcontext.cs
- Stack.cs
- IsolatedStorageFileStream.cs
- Calendar.cs
- DataAdapter.cs
- ListViewEditEventArgs.cs
- EncryptedPackageFilter.cs
- EDesignUtil.cs
- DataControlReferenceCollection.cs
- PointAnimationClockResource.cs
- RawStylusInputReport.cs
- ActivityBindForm.Designer.cs
- FloaterParaClient.cs