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
- SchemaContext.cs
- ToolStripContentPanelRenderEventArgs.cs
- LeafCellTreeNode.cs
- TextViewBase.cs
- HashCodeCombiner.cs
- ServiceDebugBehavior.cs
- NameValueFileSectionHandler.cs
- DoubleLinkList.cs
- SQLInt32.cs
- UnaryOperationBinder.cs
- ProtocolsConfiguration.cs
- PasswordBoxAutomationPeer.cs
- ResourceAssociationTypeEnd.cs
- Helpers.cs
- BindingOperations.cs
- SingleKeyFrameCollection.cs
- LocalBuilder.cs
- PerfCounterSection.cs
- HttpResponse.cs
- EnvironmentPermission.cs
- ThreadPool.cs
- XNameConverter.cs
- SystemNetworkInterface.cs
- BasicCommandTreeVisitor.cs
- DoubleStorage.cs
- XmlDataCollection.cs
- EmptyControlCollection.cs
- ContractsBCL.cs
- UInt64.cs
- CalendarDataBindingHandler.cs
- QueryProcessor.cs
- XmlSchemaAll.cs
- CodeBlockBuilder.cs
- TitleStyle.cs
- ToolStripItemRenderEventArgs.cs
- MatrixAnimationUsingPath.cs
- ChangeProcessor.cs
- TreeNodeSelectionProcessor.cs
- RuleSettingsCollection.cs
- PolicyValidationException.cs
- Variant.cs
- AuthorizationRule.cs
- AddDataControlFieldDialog.cs
- UnmanagedMemoryStreamWrapper.cs
- FilterException.cs
- HashAlgorithm.cs
- _ConnectOverlappedAsyncResult.cs
- ContextBase.cs
- CollectionViewSource.cs
- XMLDiffLoader.cs
- CustomAssemblyResolver.cs
- Qualifier.cs
- OdbcCommand.cs
- DocComment.cs
- SafePipeHandle.cs
- InputGestureCollection.cs
- ServiceHttpModule.cs
- WindowsFormsDesignerOptionService.cs
- PaperSource.cs
- XamlFilter.cs
- ChannelToken.cs
- MeshGeometry3D.cs
- AttributeTableBuilder.cs
- PropertyManager.cs
- Comparer.cs
- Script.cs
- DataMisalignedException.cs
- QueryExecutionOption.cs
- NamedElement.cs
- FunctionQuery.cs
- PointF.cs
- WindowsPrincipal.cs
- QueryCorrelationInitializer.cs
- DataRecordInternal.cs
- SecurityTokenProvider.cs
- SqlConnection.cs
- SessionParameter.cs
- FontFamily.cs
- ContentValidator.cs
- SqlHelper.cs
- DataListItemEventArgs.cs
- FigureHelper.cs
- WebEventTraceProvider.cs
- TemplateManager.cs
- EntityContainer.cs
- SqlXml.cs
- HttpStreamXmlDictionaryReader.cs
- ScriptManager.cs
- ChannelServices.cs
- XhtmlTextWriter.cs
- RightNameExpirationInfoPair.cs
- StyleHelper.cs
- SslStream.cs
- SetStoryboardSpeedRatio.cs
- ImageButton.cs
- SHA384Managed.cs
- DataSpaceManager.cs
- MembershipSection.cs
- SamlDelegatingWriter.cs
- PropertyGridCommands.cs