Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / WSHttpSecurity.cs / 1 / WSHttpSecurity.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; public sealed class WSHttpSecurity { internal const SecurityMode DefaultMode = SecurityMode.Message; SecurityMode mode; HttpTransportSecurity transportSecurity; NonDualMessageSecurityOverHttp messageSecurity; internal WSHttpSecurity() : this(DefaultMode, GetDefaultHttpTransportSecurity(), new NonDualMessageSecurityOverHttp()) { } internal WSHttpSecurity(SecurityMode mode, HttpTransportSecurity transportSecurity, NonDualMessageSecurityOverHttp messageSecurity) { this.mode = mode; this.transportSecurity = transportSecurity == null ? GetDefaultHttpTransportSecurity() : transportSecurity; this.messageSecurity = messageSecurity == null ? new NonDualMessageSecurityOverHttp() : messageSecurity; } internal static HttpTransportSecurity GetDefaultHttpTransportSecurity() { HttpTransportSecurity transportSecurity = new HttpTransportSecurity(); transportSecurity.ClientCredentialType = HttpClientCredentialType.Windows; return transportSecurity; } public SecurityMode Mode { get { return this.mode; } set { if (!SecurityModeHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.mode = value; } } public HttpTransportSecurity Transport { get { return this.transportSecurity; } } public NonDualMessageSecurityOverHttp Message { get { return this.messageSecurity; } } internal void ApplyTransportSecurity(HttpsTransportBindingElement https) { if (this.mode == SecurityMode.TransportWithMessageCredential) { this.transportSecurity.ConfigureTransportProtectionOnly(https); } else { this.transportSecurity.ConfigureTransportProtectionAndAuthentication(https); } } internal static void ApplyTransportSecurity(HttpsTransportBindingElement transport, HttpTransportSecurity transportSecurity) { HttpTransportSecurity.ConfigureTransportProtectionAndAuthentication(transport, transportSecurity); } internal SecurityBindingElement CreateMessageSecurity(bool isReliableSessionEnabled, MessageSecurityVersion version) { if (this.mode == SecurityMode.Message || this.mode == SecurityMode.TransportWithMessageCredential) { return this.messageSecurity.CreateSecurityBindingElement(this.Mode == SecurityMode.TransportWithMessageCredential, isReliableSessionEnabled, version); } else { return null; } } internal static bool TryCreate(SecurityBindingElement sbe, UnifiedSecurityMode mode, HttpTransportSecurity transportSecurity, bool isReliableSessionEnabled, out WSHttpSecurity security) { security = null; NonDualMessageSecurityOverHttp messageSecurity = null; SecurityMode securityMode = SecurityMode.None; if (sbe != null) { mode &= UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential; securityMode = SecurityModeHelper.ToSecurityMode(mode); DiagnosticUtility.DebugAssert(SecurityModeHelper.IsDefined(securityMode), string.Format("Invalid SecurityMode value: {0}.", mode.ToString())); if (!MessageSecurityOverHttp.TryCreate(sbe, securityMode == SecurityMode.TransportWithMessageCredential, isReliableSessionEnabled, out messageSecurity)) { return false; } } else { mode &= ~(UnifiedSecurityMode.Message | UnifiedSecurityMode.TransportWithMessageCredential); securityMode = SecurityModeHelper.ToSecurityMode(mode); } DiagnosticUtility.DebugAssert(SecurityModeHelper.IsDefined(securityMode), string.Format("Invalid SecurityMode value: {0}.", securityMode.ToString())); security = new WSHttpSecurity(securityMode, transportSecurity, messageSecurity); return true; } } } // 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
- SocketPermission.cs
- GridView.cs
- CustomDictionarySources.cs
- DataGridCellEditEndingEventArgs.cs
- MgmtConfigurationRecord.cs
- SettingsContext.cs
- LambdaCompiler.Statements.cs
- ProfileSection.cs
- ProfileProvider.cs
- DataGridViewUtilities.cs
- DataGridViewTopLeftHeaderCell.cs
- MediaTimeline.cs
- PersianCalendar.cs
- WindowInteractionStateTracker.cs
- ApplicationId.cs
- DataBinding.cs
- SQLInt16.cs
- _ProxyRegBlob.cs
- SubpageParagraph.cs
- BindingWorker.cs
- WebScriptMetadataFormatter.cs
- ParameterBuilder.cs
- EntityDataSourceReferenceGroup.cs
- ReaderWriterLock.cs
- WebServiceClientProxyGenerator.cs
- PrintPreviewControl.cs
- SqlInternalConnectionSmi.cs
- OleDbConnectionFactory.cs
- FormViewDeleteEventArgs.cs
- FormViewInsertedEventArgs.cs
- EmptyReadOnlyDictionaryInternal.cs
- DataTableReader.cs
- _StreamFramer.cs
- FileCodeGroup.cs
- _NativeSSPI.cs
- ValidationErrorCollection.cs
- ToolStripComboBox.cs
- ContextQuery.cs
- SafePEFileHandle.cs
- graph.cs
- ExecutionContext.cs
- XmlObjectSerializerContext.cs
- DataGridViewCellStyle.cs
- WebSysDefaultValueAttribute.cs
- TextClipboardData.cs
- RectangleF.cs
- MetadataProperty.cs
- ModuleBuilderData.cs
- Function.cs
- TransformerInfo.cs
- SettingsProviderCollection.cs
- CodeTypeDeclaration.cs
- EmbossBitmapEffect.cs
- CopyNodeSetAction.cs
- Animatable.cs
- TimerElapsedEvenArgs.cs
- ClientCultureInfo.cs
- DataGridRelationshipRow.cs
- NTAccount.cs
- EntityDataSourceEntityTypeFilterItem.cs
- ImageAttributes.cs
- xmlglyphRunInfo.cs
- CookielessData.cs
- DataKeyArray.cs
- ListBoxItem.cs
- IItemContainerGenerator.cs
- CodeAccessSecurityEngine.cs
- AssociationSetEnd.cs
- QilFunction.cs
- AmbientLight.cs
- NextPreviousPagerField.cs
- CacheOutputQuery.cs
- Cursors.cs
- JsonClassDataContract.cs
- FormClosingEvent.cs
- XmlSchemaComplexType.cs
- Semaphore.cs
- RawAppCommandInputReport.cs
- EdmSchemaAttribute.cs
- Point.cs
- FragmentQueryProcessor.cs
- ExeContext.cs
- Identifier.cs
- Wizard.cs
- ComponentEvent.cs
- UpWmlMobileTextWriter.cs
- RecognizerStateChangedEventArgs.cs
- XPathDocumentBuilder.cs
- TypeUnloadedException.cs
- FileSecurity.cs
- ParameterBuilder.cs
- TemplateNameScope.cs
- DataServicePagingProviderWrapper.cs
- ConfigsHelper.cs
- bindurihelper.cs
- OleDbRowUpdatingEvent.cs
- Marshal.cs
- LogAppendAsyncResult.cs
- StrongTypingException.cs
- PathGeometry.cs