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
- LocalClientSecuritySettingsElement.cs
- AuthenticationService.cs
- ToolBarPanel.cs
- InsufficientExecutionStackException.cs
- KeyedHashAlgorithm.cs
- EditingContext.cs
- DesignerOptionService.cs
- XmlReaderSettings.cs
- IsolatedStoragePermission.cs
- RelatedEnd.cs
- ScrollableControl.cs
- BidirectionalDictionary.cs
- DebugView.cs
- WebPartDisplayModeCollection.cs
- SourceItem.cs
- AstTree.cs
- ResourceSet.cs
- DescendantQuery.cs
- ProxyWebPart.cs
- WebServiceFault.cs
- ModelTreeEnumerator.cs
- ParallelEnumerableWrapper.cs
- MissingMemberException.cs
- SqlCommand.cs
- AtomEntry.cs
- JavaScriptSerializer.cs
- XNodeValidator.cs
- TabControlAutomationPeer.cs
- LongMinMaxAggregationOperator.cs
- MemoryRecordBuffer.cs
- ToolStripMenuItem.cs
- DataTableMapping.cs
- _BufferOffsetSize.cs
- DataSourceHelper.cs
- PersistChildrenAttribute.cs
- ThousandthOfEmRealPoints.cs
- ImageSourceTypeConverter.cs
- DataBindEngine.cs
- objectresult_tresulttype.cs
- webproxy.cs
- BooleanConverter.cs
- BitStack.cs
- regiisutil.cs
- TypeExtension.cs
- Pair.cs
- TCPListener.cs
- ScrollChrome.cs
- SingleKeyFrameCollection.cs
- ButtonFieldBase.cs
- ConfigXmlText.cs
- DBDataPermission.cs
- _ChunkParse.cs
- OutputCacheSettingsSection.cs
- DbDataSourceEnumerator.cs
- QueryGenerator.cs
- DateTimeFormat.cs
- CallbackValidator.cs
- BufferedReadStream.cs
- DataViewSettingCollection.cs
- WebPartDisplayModeCollection.cs
- VBCodeProvider.cs
- CodeExporter.cs
- DragDropManager.cs
- AsyncStreamReader.cs
- Int32Converter.cs
- SamlAssertion.cs
- SchemaAttDef.cs
- WebPartEditorCancelVerb.cs
- Screen.cs
- Control.cs
- TypeSemantics.cs
- SecurityContextTokenCache.cs
- CompositeTypefaceMetrics.cs
- TreeNodeBinding.cs
- CapabilitiesRule.cs
- LinearGradientBrush.cs
- IIS7UserPrincipal.cs
- EntityModelBuildProvider.cs
- XmlEncApr2001.cs
- BindingContext.cs
- NullableDoubleAverageAggregationOperator.cs
- MembershipSection.cs
- JavaScriptString.cs
- Renderer.cs
- OpCodes.cs
- AlphabeticalEnumConverter.cs
- SafeRegistryHandle.cs
- StrokeSerializer.cs
- Point3DValueSerializer.cs
- AuthenticationModuleElement.cs
- FixedStringLookup.cs
- GlyphCache.cs
- OdbcParameter.cs
- PropertyBuilder.cs
- ClaimTypeElementCollection.cs
- GridViewColumnHeaderAutomationPeer.cs
- ArgIterator.cs
- ShapeTypeface.cs
- StringBuilder.cs
- StringPropertyBuilder.cs