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
- UTF32Encoding.cs
- ScrollBar.cs
- MarkupExtensionParser.cs
- CapacityStreamGeometryContext.cs
- Int64AnimationBase.cs
- AssertHelper.cs
- RuntimeHandles.cs
- ObjectDisposedException.cs
- EtwTrace.cs
- XPathDocument.cs
- SslStreamSecurityElement.cs
- PagerSettings.cs
- Header.cs
- ValueSerializer.cs
- EndOfStreamException.cs
- EditorZoneBase.cs
- ExceptionRoutedEventArgs.cs
- HttpPostedFile.cs
- ForwardPositionQuery.cs
- TimeEnumHelper.cs
- System.Data_BID.cs
- ImageMapEventArgs.cs
- ToolTip.cs
- SqlTypeConverter.cs
- RightsManagementPermission.cs
- XmlILOptimizerVisitor.cs
- CodeParameterDeclarationExpression.cs
- ProfileSettings.cs
- CombinedGeometry.cs
- RectangleF.cs
- MergePropertyDescriptor.cs
- SingleTagSectionHandler.cs
- Thread.cs
- SchemaElementDecl.cs
- TextSelectionHelper.cs
- MatrixCamera.cs
- FileUpload.cs
- PanelDesigner.cs
- CommonProperties.cs
- ImageInfo.cs
- CurrencyManager.cs
- SimpleMailWebEventProvider.cs
- AtlasWeb.Designer.cs
- Help.cs
- ContainerActivationHelper.cs
- BamlTreeMap.cs
- BinaryObjectReader.cs
- Canvas.cs
- PathHelper.cs
- AndCondition.cs
- Focus.cs
- NameValuePair.cs
- WebPartDisplayModeCancelEventArgs.cs
- RowType.cs
- CurrentTimeZone.cs
- QueryCacheManager.cs
- TypographyProperties.cs
- CookieProtection.cs
- SqlInternalConnectionSmi.cs
- ColumnResizeAdorner.cs
- TreeNodeCollectionEditor.cs
- RadioButtonBaseAdapter.cs
- MappableObjectManager.cs
- xml.cs
- DocumentXmlWriter.cs
- LogRestartAreaEnumerator.cs
- PromptEventArgs.cs
- PolyBezierSegment.cs
- TextElementCollectionHelper.cs
- NetDispatcherFaultException.cs
- MonthChangedEventArgs.cs
- EncryptedData.cs
- HMACSHA512.cs
- DiscoveryViaBehavior.cs
- QilExpression.cs
- InputEventArgs.cs
- SQLDateTimeStorage.cs
- ObjectStateManager.cs
- DataGridRowHeader.cs
- PasswordTextContainer.cs
- ProxyElement.cs
- SurrogateEncoder.cs
- CultureTableRecord.cs
- DataKeyArray.cs
- CounterSet.cs
- DataSourceListEditor.cs
- DataTableReader.cs
- DataGridViewRowConverter.cs
- TogglePattern.cs
- MinimizableAttributeTypeConverter.cs
- TypeElementCollection.cs
- DocumentReference.cs
- DataViewManager.cs
- ObjectComplexPropertyMapping.cs
- QilList.cs
- ComboBox.cs
- DataTableReaderListener.cs
- ReferencedAssembly.cs
- UnsafeNativeMethods.cs
- BinaryObjectReader.cs