Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / BasicHttpSecurity.cs / 1 / BasicHttpSecurity.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel { using System.ServiceModel.Channels; using System.Net.Security; using System.ServiceModel.Security; using System.ServiceModel.Configuration; using System.Diagnostics; public sealed class BasicHttpSecurity { internal const BasicHttpSecurityMode DefaultMode = BasicHttpSecurityMode.None; BasicHttpSecurityMode mode; HttpTransportSecurity transportSecurity; BasicHttpMessageSecurity messageSecurity; internal BasicHttpSecurity() : this(DefaultMode, new HttpTransportSecurity(), new BasicHttpMessageSecurity()) { } BasicHttpSecurity(BasicHttpSecurityMode mode, HttpTransportSecurity transportSecurity, BasicHttpMessageSecurity messageSecurity) { DiagnosticUtility.DebugAssert(BasicHttpSecurityModeHelper.IsDefined(mode), string.Format("Invalid BasicHttpSecurityMode value: {0}.", mode.ToString())); this.Mode = mode; this.transportSecurity = transportSecurity == null ? new HttpTransportSecurity() : transportSecurity; this.messageSecurity = messageSecurity == null ? new BasicHttpMessageSecurity() : messageSecurity; } public BasicHttpSecurityMode Mode { get { return this.mode; } set { if (!BasicHttpSecurityModeHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.mode = value; } } public HttpTransportSecurity Transport { get { return this.transportSecurity; } } public BasicHttpMessageSecurity Message { get { return this.messageSecurity; } } internal void EnableTransportSecurity(HttpsTransportBindingElement https) { if (this.mode == BasicHttpSecurityMode.TransportWithMessageCredential) { this.transportSecurity.ConfigureTransportProtectionOnly(https); } else { this.transportSecurity.ConfigureTransportProtectionAndAuthentication(https); } } internal static void EnableTransportSecurity(HttpsTransportBindingElement https, HttpTransportSecurity transportSecurity) { HttpTransportSecurity.ConfigureTransportProtectionAndAuthentication(https, transportSecurity); } internal void EnableTransportAuthentication(HttpTransportBindingElement http) { this.transportSecurity.ConfigureTransportAuthentication(http); } internal static bool IsEnabledTransportAuthentication(HttpTransportBindingElement http, HttpTransportSecurity transportSecurity) { return HttpTransportSecurity.IsConfiguredTransportAuthentication(http, transportSecurity); } internal void DisableTransportAuthentication(HttpTransportBindingElement http) { this.transportSecurity.DisableTransportAuthentication(http); } internal SecurityBindingElement CreateMessageSecurity() { if (this.mode == BasicHttpSecurityMode.Message || this.mode == BasicHttpSecurityMode.TransportWithMessageCredential) { return this.messageSecurity.CreateMessageSecurity(this.Mode == BasicHttpSecurityMode.TransportWithMessageCredential); } else { return null; } } internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, out BasicHttpSecurity security) { security = null; BasicHttpMessageSecurity messageSecurity = null; if (sbe != null) { mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential; bool isSecureTransportMode; if (!BasicHttpMessageSecurity.TryCreate(sbe, out messageSecurity, out isSecureTransportMode)) { return false; } } else { mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential); } BasicHttpSecurityMode basicHttpSecurityMode = BasicHttpSecurityModeHelper.ToSecurityMode(mode); DiagnosticUtility.DebugAssert(BasicHttpSecurityModeHelper.IsDefined(basicHttpSecurityMode), string.Format("Invalid BasicHttpSecurityMode value: {0}.", basicHttpSecurityMode.ToString())); security = new BasicHttpSecurity(basicHttpSecurityMode, transportSecurity, messageSecurity); return SecurityElement.AreBindingsMatching(security.CreateMessageSecurity(), sbe); } } } // 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
- TreeNodeStyleCollection.cs
- TokenizerHelper.cs
- XPathMessageFilterTable.cs
- SqlExpander.cs
- ImageKeyConverter.cs
- ColorTranslator.cs
- ImpersonationContext.cs
- IList.cs
- PropertyGeneratedEventArgs.cs
- CompensationExtension.cs
- ServicePointManager.cs
- KerberosSecurityTokenProvider.cs
- ThreadExceptionEvent.cs
- PeerUnsafeNativeCryptMethods.cs
- DataGridTextBox.cs
- IntSecurity.cs
- ToolbarAUtomationPeer.cs
- CodeSubDirectory.cs
- MeshGeometry3D.cs
- ImageField.cs
- ReferenceSchema.cs
- HandledEventArgs.cs
- StorageEntityTypeMapping.cs
- WebPartDescription.cs
- PathSegment.cs
- ComPlusInstanceProvider.cs
- Package.cs
- StopRoutingHandler.cs
- Transaction.cs
- QuaternionKeyFrameCollection.cs
- SwitchDesigner.xaml.cs
- SqlDataSourceView.cs
- WebRequestModulesSection.cs
- ActivationArguments.cs
- IgnoreFlushAndCloseStream.cs
- Pen.cs
- WebScriptMetadataFormatter.cs
- ObsoleteAttribute.cs
- Win32.cs
- DataColumnMappingCollection.cs
- TextServicesContext.cs
- AutoScrollExpandMessageFilter.cs
- ItemContainerPattern.cs
- X509Certificate2Collection.cs
- Literal.cs
- SessionStateUtil.cs
- DataBindingCollection.cs
- RoutedCommand.cs
- SByteConverter.cs
- _HeaderInfoTable.cs
- SliderAutomationPeer.cs
- ToolStripContentPanel.cs
- TextUtf8RawTextWriter.cs
- TextProperties.cs
- SchemaImporterExtensionElementCollection.cs
- DynamicQueryableWrapper.cs
- PropertyGeneratedEventArgs.cs
- WinInet.cs
- SqlDataSourceFilteringEventArgs.cs
- DbProviderFactory.cs
- BevelBitmapEffect.cs
- ArglessEventHandlerProxy.cs
- CompatibleComparer.cs
- FamilyCollection.cs
- Triplet.cs
- PersonalizationState.cs
- MemoryResponseElement.cs
- ActivityIdHeader.cs
- ContentControl.cs
- FieldNameLookup.cs
- ElementMarkupObject.cs
- NavigatorOutput.cs
- ServiceOperation.cs
- DefaultValueTypeConverter.cs
- LicFileLicenseProvider.cs
- CatalogPart.cs
- WeakReference.cs
- SoapEnumAttribute.cs
- SignedXml.cs
- FlagsAttribute.cs
- CssStyleCollection.cs
- TimeStampChecker.cs
- PackageRelationshipCollection.cs
- SqlClientWrapperSmiStream.cs
- InputLanguageCollection.cs
- DesignSurfaceManager.cs
- MultiSelectRootGridEntry.cs
- StylusPointPropertyUnit.cs
- MetadataItemEmitter.cs
- OdbcParameter.cs
- figurelength.cs
- SamlAuthenticationClaimResource.cs
- ItemCheckEvent.cs
- SafePEFileHandle.cs
- SpeechEvent.cs
- BooleanKeyFrameCollection.cs
- TypeElementCollection.cs
- WindowHelperService.cs
- ComponentManagerBroker.cs
- QilPatternVisitor.cs