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
- QueryPageSettingsEventArgs.cs
- MethodBody.cs
- StringExpressionSet.cs
- FormsAuthenticationUserCollection.cs
- XmlAnyElementAttributes.cs
- ClientTarget.cs
- BasicExpressionVisitor.cs
- OdbcInfoMessageEvent.cs
- ISFClipboardData.cs
- securitymgrsite.cs
- TableItemPattern.cs
- Main.cs
- GeneratedContractType.cs
- DataColumnPropertyDescriptor.cs
- DATA_BLOB.cs
- StackOverflowException.cs
- OptimalBreakSession.cs
- Base64Encoding.cs
- CollectionViewGroupInternal.cs
- SecurityDescriptor.cs
- AssemblyInfo.cs
- OdbcEnvironmentHandle.cs
- StrongNameMembershipCondition.cs
- TextBox.cs
- CrossAppDomainChannel.cs
- CodeStatement.cs
- Freezable.cs
- QilUnary.cs
- Rectangle.cs
- XmlSchemaComplexContentRestriction.cs
- EventMap.cs
- Site.cs
- LinqDataView.cs
- DataGridViewComboBoxColumn.cs
- SubclassTypeValidator.cs
- SoapClientProtocol.cs
- OutputCacheProfile.cs
- DynamicValueConverter.cs
- FixUp.cs
- AliasedSlot.cs
- SeekStoryboard.cs
- SqlConnectionStringBuilder.cs
- TrackingConditionCollection.cs
- XmlKeywords.cs
- sqlinternaltransaction.cs
- XmlSchemaRedefine.cs
- PropertyKey.cs
- IntegerValidator.cs
- CollectionViewGroupInternal.cs
- MailMessageEventArgs.cs
- _NtlmClient.cs
- BaseTemplateCodeDomTreeGenerator.cs
- AssemblyResourceLoader.cs
- SingleTagSectionHandler.cs
- ProgressChangedEventArgs.cs
- mediaclock.cs
- CollectionView.cs
- BypassElement.cs
- RedBlackList.cs
- BezierSegment.cs
- Normalization.cs
- TrustManagerPromptUI.cs
- DeferredBinaryDeserializerExtension.cs
- Mouse.cs
- MetaChildrenColumn.cs
- ZipIOLocalFileDataDescriptor.cs
- MembershipPasswordException.cs
- Type.cs
- ExitEventArgs.cs
- PropertyCollection.cs
- LinearKeyFrames.cs
- DbProviderManifest.cs
- TransformedBitmap.cs
- Catch.cs
- SchemaMerger.cs
- ColorTransformHelper.cs
- CultureSpecificStringDictionary.cs
- WindowsGraphics2.cs
- ControlCollection.cs
- CompModSwitches.cs
- ResourceSet.cs
- NominalTypeEliminator.cs
- OleDbInfoMessageEvent.cs
- Utils.cs
- DataGridViewRowsAddedEventArgs.cs
- ActionFrame.cs
- BitmapEffectCollection.cs
- DataGridViewCellConverter.cs
- PropertyGridDesigner.cs
- TextAutomationPeer.cs
- NamespaceExpr.cs
- codemethodreferenceexpression.cs
- TrackingMemoryStreamFactory.cs
- XamlSerializer.cs
- ReturnType.cs
- InvalidPipelineStoreException.cs
- Registration.cs
- EncoderNLS.cs
- WindowShowOrOpenTracker.cs
- FlowNode.cs