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
- SqlDependencyUtils.cs
- XmlSchemaProviderAttribute.cs
- SchemaTableColumn.cs
- EventLog.cs
- HwndHost.cs
- DiagnosticTrace.cs
- GeometryDrawing.cs
- Preprocessor.cs
- CacheOutputQuery.cs
- AnnotationDocumentPaginator.cs
- HealthMonitoringSection.cs
- ResourcesBuildProvider.cs
- ExpressionConverter.cs
- ThrowHelper.cs
- DocumentViewerConstants.cs
- JournalEntryListConverter.cs
- Pen.cs
- StyleSheetDesigner.cs
- QueryOperationResponseOfT.cs
- BaseUriHelper.cs
- CngKeyBlobFormat.cs
- IChannel.cs
- StringOutput.cs
- BinaryObjectInfo.cs
- CompilerError.cs
- CompleteWizardStep.cs
- coordinatorscratchpad.cs
- DoubleLink.cs
- DashStyle.cs
- SystemInformation.cs
- Timer.cs
- ExtensionDataReader.cs
- RolePrincipal.cs
- SoapServerMessage.cs
- TemplateLookupAction.cs
- serverconfig.cs
- GeneralTransform3D.cs
- ResourceReferenceKeyNotFoundException.cs
- TypeForwardedToAttribute.cs
- PointLightBase.cs
- DesignerUtils.cs
- PrintingPermissionAttribute.cs
- MatchingStyle.cs
- CheckBoxList.cs
- UriWriter.cs
- X509Utils.cs
- DSGeneratorProblem.cs
- WindowsListViewGroupHelper.cs
- CustomAttribute.cs
- UpdateManifestForBrowserApplication.cs
- ITreeGenerator.cs
- EntryPointNotFoundException.cs
- FontCacheUtil.cs
- unsafenativemethodstextservices.cs
- KeyedCollection.cs
- HebrewNumber.cs
- WebPartEditorCancelVerb.cs
- CSharpCodeProvider.cs
- InnerItemCollectionView.cs
- InfoCardAsymmetricCrypto.cs
- DefaultTextStore.cs
- Calendar.cs
- URIFormatException.cs
- AssemblyBuilderData.cs
- RijndaelCryptoServiceProvider.cs
- cryptoapiTransform.cs
- MailWriter.cs
- Preprocessor.cs
- WebControlToolBoxItem.cs
- ForeignKeyConstraint.cs
- _Events.cs
- DesignerHost.cs
- TouchEventArgs.cs
- DataGridColumnHeader.cs
- ToolStripDesignerAvailabilityAttribute.cs
- WinEventTracker.cs
- ReflectTypeDescriptionProvider.cs
- MulticastDelegate.cs
- PointLightBase.cs
- XmlSortKeyAccumulator.cs
- XmlDataProvider.cs
- ZoomPercentageConverter.cs
- EntityProxyFactory.cs
- SplitterPanel.cs
- ReferenceSchema.cs
- CodeAccessSecurityEngine.cs
- CustomWebEventKey.cs
- BaseProcessor.cs
- TextFormatterHost.cs
- PerformanceCountersElement.cs
- DialogResultConverter.cs
- CommandSet.cs
- sqlcontext.cs
- Message.cs
- RoleManagerModule.cs
- HiddenField.cs
- QilFactory.cs
- WriterOutput.cs
- CompositeFontInfo.cs
- PersonalizationDictionary.cs