Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / NetTcpSecurity.cs / 1 / NetTcpSecurity.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel { using System.Diagnostics; using System.Net.Security; using System.ServiceModel.Channels; using System.ServiceModel.Security; using System.ServiceModel.Configuration; public sealed class NetTcpSecurity { internal const SecurityMode DefaultMode = SecurityMode.Transport; SecurityMode mode; TcpTransportSecurity transportSecurity; MessageSecurityOverTcp messageSecurity; internal NetTcpSecurity() : this(DefaultMode, new TcpTransportSecurity(), new MessageSecurityOverTcp()) { } NetTcpSecurity(SecurityMode mode, TcpTransportSecurity transportSecurity, MessageSecurityOverTcp messageSecurity) { DiagnosticUtility.DebugAssert(SecurityModeHelper.IsDefined(mode), string.Format("Invalid SecurityMode value: {0}.", mode.ToString())); this.mode = mode; this.transportSecurity = transportSecurity == null ? new TcpTransportSecurity() : transportSecurity; this.messageSecurity = messageSecurity == null ? new MessageSecurityOverTcp() : messageSecurity; } public SecurityMode Mode { get { return this.mode; } set { if (!SecurityModeHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.mode = value; } } public TcpTransportSecurity Transport { get { return this.transportSecurity; } } public MessageSecurityOverTcp Message { get { return this.messageSecurity; } } internal BindingElement CreateTransportSecurity() { if (this.mode == SecurityMode.TransportWithMessageCredential) { return this.transportSecurity.CreateTransportProtectionOnly(); } else if (this.mode == SecurityMode.Transport) { return this.transportSecurity.CreateTransportProtectionAndAuthentication(); } else { return null; } } internal static UnifiedSecurityMode GetModeFromTransportSecurity(BindingElement transport) { if (transport == null) { return UnifiedSecurityMode.None | UnifiedSecurityMode.Message; } else { return UnifiedSecurityMode.TransportWithMessageCredential | UnifiedSecurityMode.Transport; } } internal static bool SetTransportSecurity(BindingElement transport, SecurityMode mode, TcpTransportSecurity transportSecurity) { if (mode == SecurityMode.TransportWithMessageCredential) { return TcpTransportSecurity.SetTransportProtectionOnly(transport, transportSecurity); } else if (mode == SecurityMode.Transport) { return TcpTransportSecurity.SetTransportProtectionAndAuthentication(transport, transportSecurity); } return transport == null; } internal SecurityBindingElement CreateMessageSecurity(bool isReliableSessionEnabled) { if (this.mode == SecurityMode.Message) { return this.messageSecurity.CreateSecurityBindingElement(false, isReliableSessionEnabled, null); } else if (this.mode == SecurityMode.TransportWithMessageCredential) { return this.messageSecurity.CreateSecurityBindingElement(true, isReliableSessionEnabled, this.CreateTransportSecurity()); } else { return null; } } internal static bool TryCreate(SecurityBindingElement wsSecurity, SecurityMode mode, bool isReliableSessionEnabled, BindingElement transportSecurity, TcpTransportSecurity tcpTransportSecurity, out NetTcpSecurity security) { security = null; MessageSecurityOverTcp messageSecurity = null; if (mode == SecurityMode.Message) { if (!MessageSecurityOverTcp.TryCreate(wsSecurity, isReliableSessionEnabled, null, out messageSecurity)) return false; } else if (mode == SecurityMode.TransportWithMessageCredential) { if (!MessageSecurityOverTcp.TryCreate(wsSecurity, isReliableSessionEnabled, transportSecurity, out messageSecurity)) return false; } security = new NetTcpSecurity(mode, tcpTransportSecurity, messageSecurity); return SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(isReliableSessionEnabled), wsSecurity, 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
- PrefixQName.cs
- AssertHelper.cs
- CollectionChangeEventArgs.cs
- PersonalizationState.cs
- ScriptingJsonSerializationSection.cs
- ListenerAdaptersInstallComponent.cs
- QilPatternVisitor.cs
- BitmapImage.cs
- PropertyGridEditorPart.cs
- ThreadPool.cs
- ExpressionSelection.cs
- Substitution.cs
- DynamicActionMessageFilter.cs
- WmpBitmapDecoder.cs
- StreamUpdate.cs
- DataGridViewTextBoxCell.cs
- Encoder.cs
- UnicastIPAddressInformationCollection.cs
- ServiceModelConfigurationElementCollection.cs
- RectAnimationUsingKeyFrames.cs
- EmissiveMaterial.cs
- Guid.cs
- ControlDesignerState.cs
- ThreadStateException.cs
- IdnMapping.cs
- RightsManagementEncryptedStream.cs
- SafeRegistryHandle.cs
- IxmlLineInfo.cs
- DbMetaDataFactory.cs
- FieldTemplateUserControl.cs
- Validator.cs
- ObfuscationAttribute.cs
- Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
- Enlistment.cs
- HtmlEncodedRawTextWriter.cs
- UrlMapping.cs
- Compensation.cs
- DbParameterHelper.cs
- SQLInt16.cs
- BuildProviderAppliesToAttribute.cs
- FixedHighlight.cs
- XmlSchemaException.cs
- WindowsTooltip.cs
- __Filters.cs
- TimeManager.cs
- SspiNegotiationTokenAuthenticatorState.cs
- CssTextWriter.cs
- SessionStateContainer.cs
- RightsManagementPermission.cs
- UInt32.cs
- DataSourceControl.cs
- SerializableAttribute.cs
- TimeoutException.cs
- HttpServerUtilityBase.cs
- ProfileModule.cs
- ActivityExecutor.cs
- ReadContentAsBinaryHelper.cs
- ConfigurationValidatorBase.cs
- DataGridViewRowHeaderCell.cs
- Geometry.cs
- COM2PictureConverter.cs
- StsCommunicationException.cs
- Variant.cs
- NamespaceExpr.cs
- TypeListConverter.cs
- DispatcherExceptionEventArgs.cs
- MeasureData.cs
- Style.cs
- XamlGridLengthSerializer.cs
- EntityContainerRelationshipSet.cs
- WebPartEditVerb.cs
- WebPartMinimizeVerb.cs
- TraceUtils.cs
- Parameter.cs
- TdsParser.cs
- TextBlockAutomationPeer.cs
- CAGDesigner.cs
- HMACSHA256.cs
- OdbcConnectionHandle.cs
- FontFamilyValueSerializer.cs
- TextDpi.cs
- DataGridrowEditEndingEventArgs.cs
- Int16Storage.cs
- Font.cs
- RunInstallerAttribute.cs
- InternalConfigEventArgs.cs
- TemplateControlBuildProvider.cs
- BooleanConverter.cs
- UriSectionReader.cs
- GlobalizationAssembly.cs
- MemberAccessException.cs
- Verify.cs
- EventMappingSettings.cs
- XmlElementAttribute.cs
- ToggleProviderWrapper.cs
- AlternationConverter.cs
- SafeTokenHandle.cs
- odbcmetadatafactory.cs
- SqlConnectionPoolProviderInfo.cs
- XmlWriterSettings.cs