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
- CodeDomConfigurationHandler.cs
- LayoutEvent.cs
- WebPartHelpVerb.cs
- Transform.cs
- TdsRecordBufferSetter.cs
- UnaryNode.cs
- WebBrowserDocumentCompletedEventHandler.cs
- EntityObject.cs
- ObjectStateFormatter.cs
- Brush.cs
- ShaderEffect.cs
- DbProviderSpecificTypePropertyAttribute.cs
- TreeViewCancelEvent.cs
- ControlType.cs
- ForeignConstraint.cs
- KeyConstraint.cs
- PerspectiveCamera.cs
- Aggregates.cs
- GenericsInstances.cs
- StringArrayConverter.cs
- Typography.cs
- StopRoutingHandler.cs
- StringAnimationBase.cs
- IntegerFacetDescriptionElement.cs
- KeyManager.cs
- contentDescriptor.cs
- TickBar.cs
- ConfigurationPermission.cs
- AdapterDictionary.cs
- RightsManagementResourceHelper.cs
- LookupTables.cs
- GroupBoxAutomationPeer.cs
- WebPartZone.cs
- SafeNativeMethods.cs
- ResourceProperty.cs
- ResourceCategoryAttribute.cs
- CheckPair.cs
- OracleBinary.cs
- AmbientLight.cs
- Compiler.cs
- HttpPostedFile.cs
- AvTraceDetails.cs
- XmlObjectSerializerReadContext.cs
- ScriptResourceHandler.cs
- isolationinterop.cs
- ListItemParagraph.cs
- WorkflowOperationFault.cs
- TreeBuilder.cs
- ProxyWebPartConnectionCollection.cs
- MemoryFailPoint.cs
- PeerValidationBehavior.cs
- RecognizedAudio.cs
- AutoResetEvent.cs
- ObjectTag.cs
- x509utils.cs
- CursorConverter.cs
- XmlDownloadManager.cs
- GenericsNotImplementedException.cs
- UInt16.cs
- StringAnimationBase.cs
- Debug.cs
- ArraySortHelper.cs
- TableParaClient.cs
- FileAuthorizationModule.cs
- ModelItemDictionary.cs
- RuleConditionDialog.cs
- AnnotationAuthorChangedEventArgs.cs
- EncodingDataItem.cs
- AuthenticationModuleElement.cs
- HttpClientChannel.cs
- UpDownBase.cs
- TextPenaltyModule.cs
- WebResponse.cs
- MediaContextNotificationWindow.cs
- FontSourceCollection.cs
- Wow64ConfigurationLoader.cs
- CommandConverter.cs
- LinkedDataMemberFieldEditor.cs
- Selection.cs
- SimpleFieldTemplateUserControl.cs
- XmlTextAttribute.cs
- SqlCacheDependencySection.cs
- DbgCompiler.cs
- MenuBase.cs
- MaterialGroup.cs
- DbProviderFactories.cs
- EdmConstants.cs
- BitmapEffectInput.cs
- UnsafeNativeMethods.cs
- Profiler.cs
- PaperSource.cs
- ConstantExpression.cs
- WeakReferenceKey.cs
- DateTimeConstantAttribute.cs
- ConfigXmlText.cs
- EngineSite.cs
- NameNode.cs
- RevocationPoint.cs
- FontStretch.cs
- SaveRecipientRequest.cs