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
- GroupBox.cs
- TokenFactoryCredential.cs
- nulltextcontainer.cs
- ExtenderProviderService.cs
- SqlTrackingWorkflowInstance.cs
- DoubleCollectionConverter.cs
- QueuedDeliveryRequirementsMode.cs
- DetailsViewPageEventArgs.cs
- KoreanCalendar.cs
- WebBrowserContainer.cs
- ClassicBorderDecorator.cs
- GcSettings.cs
- MailSettingsSection.cs
- UrlPath.cs
- IndexerHelper.cs
- HandlerFactoryCache.cs
- AsyncSerializedWorker.cs
- FileLoadException.cs
- Constants.cs
- PropertyMetadata.cs
- ECDsaCng.cs
- ComponentGlyph.cs
- StorageMappingItemCollection.cs
- CodeSnippetCompileUnit.cs
- elementinformation.cs
- ObservableDictionary.cs
- BamlLocalizabilityResolver.cs
- SchemaContext.cs
- FixedStringLookup.cs
- FormViewModeEventArgs.cs
- TraceInternal.cs
- Handle.cs
- LocalBuilder.cs
- ReadWriteObjectLock.cs
- TraceSwitch.cs
- DialogWindow.cs
- TextAdaptor.cs
- wgx_render.cs
- BufferedWebEventProvider.cs
- XmlElementAttributes.cs
- InputMethodStateTypeInfo.cs
- LoadWorkflowByKeyAsyncResult.cs
- XmlText.cs
- DirectionalLight.cs
- _AutoWebProxyScriptEngine.cs
- VBCodeProvider.cs
- CompositeFontFamily.cs
- securitycriticaldata.cs
- DefaultBinder.cs
- DefaultPropertyAttribute.cs
- ItemContainerPattern.cs
- DirectoryInfo.cs
- AllowedAudienceUriElementCollection.cs
- TextServicesHost.cs
- UriSection.cs
- ConfigurationManager.cs
- SelectionWordBreaker.cs
- VisualStyleInformation.cs
- SmiEventStream.cs
- IdentifierCollection.cs
- RootNamespaceAttribute.cs
- HMAC.cs
- Bold.cs
- DrawingContextDrawingContextWalker.cs
- TimeoutException.cs
- PointCollection.cs
- EventLogPermissionAttribute.cs
- UriScheme.cs
- TextTreeFixupNode.cs
- DecimalAnimationUsingKeyFrames.cs
- Timeline.cs
- LinearGradientBrush.cs
- ActivityExecutionContextCollection.cs
- CustomTypeDescriptor.cs
- SqlDataSourceStatusEventArgs.cs
- ArgumentNullException.cs
- mda.cs
- DataGridViewBand.cs
- OneToOneMappingSerializer.cs
- basevalidator.cs
- IndentedWriter.cs
- PkcsMisc.cs
- CodeTryCatchFinallyStatement.cs
- HtmlTableRowCollection.cs
- TraceListeners.cs
- RestHandler.cs
- TickBar.cs
- ColumnResizeUndoUnit.cs
- LinkedResourceCollection.cs
- SapiRecoContext.cs
- GlyphsSerializer.cs
- PropertyEmitterBase.cs
- TableLayoutRowStyleCollection.cs
- DefaultHttpHandler.cs
- Point.cs
- WithStatement.cs
- DownloadProgressEventArgs.cs
- NavigatingCancelEventArgs.cs
- ConstNode.cs
- BoundColumn.cs