Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / peersecuritysettings.cs / 1 / peersecuritysettings.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel { using System.Collections.ObjectModel; using System.Net.Security; using System.ServiceModel.Channels; using System.ServiceModel.Configuration; using System.ServiceModel.Description; using System.ServiceModel.Security; using System.Xml; public sealed class PeerSecuritySettings { internal const SecurityMode DefaultMode = SecurityMode.Transport; SecurityMode mode; PeerTransportSecuritySettings transportSecurity; internal PeerSecuritySettings() { mode = DefaultMode; transportSecurity = new PeerTransportSecuritySettings(); } internal PeerSecuritySettings(PeerSecuritySettings other) { this.mode = other.mode; this.transportSecurity = new PeerTransportSecuritySettings(other.transportSecurity); } internal PeerSecuritySettings(PeerSecurityElement element) { mode = element.Mode; transportSecurity = new PeerTransportSecuritySettings(element.Transport); } public SecurityMode Mode { get { return this.mode; } set { if (!SecurityModeHelper.IsDefined(value)) { PeerExceptionHelper.ThrowArgumentOutOfRange_InvalidSecurityMode((int)value); } this.mode = value; } } public PeerTransportSecuritySettings Transport { get { return this.transportSecurity; } } internal bool SupportsAuthentication { get { return this.Mode == SecurityMode.Transport || this.Mode == SecurityMode.TransportWithMessageCredential; } } internal System.Net.Security.ProtectionLevel SupportedProtectionLevel { get { System.Net.Security.ProtectionLevel level = System.Net.Security.ProtectionLevel.None; if(this.Mode == SecurityMode.Message || this.Mode == SecurityMode.TransportWithMessageCredential) { level = System.Net.Security.ProtectionLevel.Sign; } return level; } } internal void OnImportPolicy(MetadataImporter importer, PolicyConversionContext context) { XmlElement element = PolicyConversionContext.FindAssertion(context.GetBindingAssertions(), PeerTransportPolicyConstants.PeerTransportSecurityMode, TransportPolicyConstants.PeerTransportUri, true); this.Mode = SecurityMode.Transport; if (element != null) { switch(element.InnerText) { case PeerTransportPolicyConstants.PeerTransportSecurityModeNone: this.Mode = SecurityMode.None; break; case PeerTransportPolicyConstants.PeerTransportSecurityModeTransport: this.Mode = SecurityMode.Transport; break; case PeerTransportPolicyConstants.PeerTransportSecurityModeMessage: this.Mode = SecurityMode.Message; break; case PeerTransportPolicyConstants.PeerTransportSecurityModeTransportWithMessageCredential: this.Mode = SecurityMode.TransportWithMessageCredential; break; default: break; } } transportSecurity.OnImportPolicy(importer, context); } internal void OnExportPolicy(MetadataExporter exporter, PolicyConversionContext context) { string assertion = ""; switch (this.Mode) { case SecurityMode.None: assertion = PeerTransportPolicyConstants.PeerTransportSecurityModeNone; break; case SecurityMode.Transport: assertion = PeerTransportPolicyConstants.PeerTransportSecurityModeTransport; break; case SecurityMode.Message: assertion = PeerTransportPolicyConstants.PeerTransportSecurityModeMessage; break; case SecurityMode.TransportWithMessageCredential: assertion = PeerTransportPolicyConstants.PeerTransportSecurityModeTransportWithMessageCredential; break; default: DiagnosticUtility.DebugAssert("Unsupported value for PeerSecuritySettings.Mode"); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } XmlDocument doc = new XmlDocument(); XmlElement element = doc.CreateElement(PeerTransportPolicyConstants.PeerTransportPrefix, PeerTransportPolicyConstants.PeerTransportSecurityMode, TransportPolicyConstants.PeerTransportUri); element.InnerText = assertion; context.GetBindingAssertions().Add(element); transportSecurity.OnExportPolicy(exporter, context); } } } // 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
- HttpCacheVaryByContentEncodings.cs
- Label.cs
- Button.cs
- OdbcDataAdapter.cs
- WindowsFormsSectionHandler.cs
- TaskForm.cs
- TabItem.cs
- Underline.cs
- FileDialog.cs
- CodeDOMUtility.cs
- ComponentEvent.cs
- DataObjectCopyingEventArgs.cs
- GPPOINTF.cs
- Clipboard.cs
- shaperfactory.cs
- SqlCharStream.cs
- MutexSecurity.cs
- DataServiceProviderMethods.cs
- Column.cs
- SymbolType.cs
- ListViewItem.cs
- HostedElements.cs
- JavaScriptObjectDeserializer.cs
- CompoundFileReference.cs
- SafeReversePInvokeHandle.cs
- DesignerOptionService.cs
- PlatformCulture.cs
- TabControlEvent.cs
- PixelShader.cs
- XmlException.cs
- SoapServerMethod.cs
- NetTcpSectionData.cs
- CompilerTypeWithParams.cs
- FlowDocument.cs
- ClientApiGenerator.cs
- CqlQuery.cs
- KnownBoxes.cs
- ImageKeyConverter.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- ChtmlTextWriter.cs
- GatewayIPAddressInformationCollection.cs
- Block.cs
- HtmlFormAdapter.cs
- XmlAnyElementAttributes.cs
- TdsParameterSetter.cs
- MouseOverProperty.cs
- BoundPropertyEntry.cs
- LambdaCompiler.Expressions.cs
- SerializationSectionGroup.cs
- SystemTcpStatistics.cs
- DataGridViewRowHeaderCell.cs
- DelegatedStream.cs
- CommandSet.cs
- LogFlushAsyncResult.cs
- HandleCollector.cs
- ApplicationBuildProvider.cs
- AsyncCompletedEventArgs.cs
- CommentEmitter.cs
- Geometry.cs
- AnimatedTypeHelpers.cs
- QilStrConcat.cs
- SessionEndingEventArgs.cs
- BaseCodeDomTreeGenerator.cs
- Point3DAnimation.cs
- LinqDataSourceHelper.cs
- ProfileSettingsCollection.cs
- InvokerUtil.cs
- Trigger.cs
- SmtpLoginAuthenticationModule.cs
- SafeEventLogWriteHandle.cs
- HierarchicalDataTemplate.cs
- DispatcherObject.cs
- WebPartManager.cs
- HeaderedContentControl.cs
- ExplicitDiscriminatorMap.cs
- XmlNodeChangedEventManager.cs
- EmulateRecognizeCompletedEventArgs.cs
- WebMessageEncodingElement.cs
- PrintPreviewGraphics.cs
- XmlParserContext.cs
- GenerateScriptTypeAttribute.cs
- AppDomainManager.cs
- PropertyGridEditorPart.cs
- ThreadAttributes.cs
- RegexGroup.cs
- StylusDownEventArgs.cs
- AppDomainEvidenceFactory.cs
- ServiceOperationParameter.cs
- RectKeyFrameCollection.cs
- BuildResult.cs
- EpmCustomContentWriterNodeData.cs
- RegexCharClass.cs
- ComEventsInfo.cs
- XmlCDATASection.cs
- KnownTypesHelper.cs
- DataDesignUtil.cs
- MarkupCompilePass1.cs
- WebEvents.cs
- ErrorFormatterPage.cs
- TextComposition.cs