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
- TimeoutTimer.cs
- GradientStop.cs
- IODescriptionAttribute.cs
- GenericTransactionFlowAttribute.cs
- XmlDataImplementation.cs
- DataViewManagerListItemTypeDescriptor.cs
- CallId.cs
- QuotedPrintableStream.cs
- ListViewGroupCollectionEditor.cs
- TextBoxLine.cs
- _NegoState.cs
- SmiMetaDataProperty.cs
- DataTableTypeConverter.cs
- TcpProcessProtocolHandler.cs
- TableLayoutSettingsTypeConverter.cs
- TimeoutValidationAttribute.cs
- COM2Properties.cs
- FileSecurity.cs
- MobileCapabilities.cs
- Int32RectValueSerializer.cs
- ComponentResourceManager.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- OrthographicCamera.cs
- StrongNamePublicKeyBlob.cs
- OrderedEnumerableRowCollection.cs
- OciHandle.cs
- TdsParserStaticMethods.cs
- DataGridColumn.cs
- CorePropertiesFilter.cs
- HtmlEncodedRawTextWriter.cs
- _CacheStreams.cs
- ItemsPresenter.cs
- XmlnsDefinitionAttribute.cs
- ErrorWebPart.cs
- FontDriver.cs
- RuntimeResourceSet.cs
- FunctionDescription.cs
- ConnectionPoint.cs
- IconEditor.cs
- OAVariantLib.cs
- IChannel.cs
- MonikerSyntaxException.cs
- DeflateStream.cs
- FormsAuthentication.cs
- SqlCommandBuilder.cs
- MethodAccessException.cs
- AttachedPropertyInfo.cs
- FullTextBreakpoint.cs
- VariableBinder.cs
- SortedDictionary.cs
- RectangleConverter.cs
- MetabaseServerConfig.cs
- AnnotationMap.cs
- SqlProvider.cs
- PersonalizationState.cs
- OverloadGroupAttribute.cs
- ILGenerator.cs
- ProfilePropertySettingsCollection.cs
- typedescriptorpermission.cs
- Wildcard.cs
- NamedElement.cs
- TypeDescriptor.cs
- FilePrompt.cs
- DownloadProgressEventArgs.cs
- documentsequencetextcontainer.cs
- Parser.cs
- PointF.cs
- ResourceReferenceExpressionConverter.cs
- HttpCacheVaryByContentEncodings.cs
- DecodeHelper.cs
- GenerateScriptTypeAttribute.cs
- Help.cs
- GlobalEventManager.cs
- ToolStripSettings.cs
- _CacheStreams.cs
- ScriptManagerProxy.cs
- ResourceReader.cs
- DataGridViewComboBoxEditingControl.cs
- TextCollapsingProperties.cs
- NamespaceInfo.cs
- ValidationHelper.cs
- GridViewItemAutomationPeer.cs
- SystemNetHelpers.cs
- XomlCompilerError.cs
- MultitargetingHelpers.cs
- SystemTcpStatistics.cs
- SQLBinaryStorage.cs
- JapaneseLunisolarCalendar.cs
- TextDecoration.cs
- StringToken.cs
- TreeNodeStyle.cs
- XPathNavigatorKeyComparer.cs
- RulePatternOps.cs
- EventBindingService.cs
- ExpanderAutomationPeer.cs
- DrawingBrush.cs
- JapaneseLunisolarCalendar.cs
- SystemWebExtensionsSectionGroup.cs
- MasterPageBuildProvider.cs
- XmlIlTypeHelper.cs