Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / X509PeerCertificateAuthentication.cs / 1 / X509PeerCertificateAuthentication.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Security { using System.IdentityModel.Selectors; using System.ServiceModel; using System.Security.Cryptography.X509Certificates; public class X509PeerCertificateAuthentication { internal const X509CertificateValidationMode DefaultCertificateValidationMode = X509CertificateValidationMode.PeerOrChainTrust; internal const X509RevocationMode DefaultRevocationMode = X509RevocationMode.Online; internal const StoreLocation DefaultTrustedStoreLocation = StoreLocation.CurrentUser; static X509CertificateValidator defaultCertificateValidator; X509CertificateValidationMode certificateValidationMode = DefaultCertificateValidationMode; X509RevocationMode revocationMode = DefaultRevocationMode; StoreLocation trustedStoreLocation = DefaultTrustedStoreLocation; X509CertificateValidator customCertificateValidator = null; bool isReadOnly; internal X509PeerCertificateAuthentication() { } internal X509PeerCertificateAuthentication(X509PeerCertificateAuthentication other) { this.certificateValidationMode = other.certificateValidationMode; this.customCertificateValidator = other.customCertificateValidator; this.revocationMode = other.revocationMode; this.trustedStoreLocation = other.trustedStoreLocation; this.isReadOnly = other.isReadOnly; } internal static X509CertificateValidator DefaultCertificateValidator { get { if (defaultCertificateValidator == null) { bool useMachineContext = DefaultTrustedStoreLocation == StoreLocation.LocalMachine; X509ChainPolicy chainPolicy = new X509ChainPolicy(); chainPolicy.RevocationMode = DefaultRevocationMode; defaultCertificateValidator = X509CertificateValidator.CreatePeerOrChainTrustValidator(useMachineContext, chainPolicy); } return defaultCertificateValidator; } } public X509CertificateValidationMode CertificateValidationMode { get { return this.certificateValidationMode; } set { X509CertificateValidationModeHelper.Validate(value); ThrowIfImmutable(); this.certificateValidationMode = value; } } public X509RevocationMode RevocationMode { get { return this.revocationMode; } set { ThrowIfImmutable(); this.revocationMode = value; } } public StoreLocation TrustedStoreLocation { get { return this.trustedStoreLocation; } set { ThrowIfImmutable(); this.trustedStoreLocation = value; } } public X509CertificateValidator CustomCertificateValidator { get { return this.customCertificateValidator; } set { ThrowIfImmutable(); this.customCertificateValidator = value; } } internal bool TryGetCertificateValidator(out X509CertificateValidator validator) { validator = null; if (this.certificateValidationMode == X509CertificateValidationMode.None) { validator = X509CertificateValidator.None; } else if (this.certificateValidationMode == X509CertificateValidationMode.PeerTrust) { validator = X509CertificateValidator.PeerTrust; } else if (this.certificateValidationMode == X509CertificateValidationMode.Custom) { validator = this.customCertificateValidator; } else { bool useMachineContext = this.trustedStoreLocation == StoreLocation.LocalMachine; X509ChainPolicy chainPolicy = new X509ChainPolicy(); chainPolicy.RevocationMode = this.revocationMode; if (this.certificateValidationMode == X509CertificateValidationMode.ChainTrust) { validator = X509CertificateValidator.CreateChainTrustValidator(useMachineContext, chainPolicy); } else { validator = X509CertificateValidator.CreatePeerOrChainTrustValidator(useMachineContext, chainPolicy); } } return (validator != null); } internal X509CertificateValidator GetCertificateValidator() { X509CertificateValidator result; if (!TryGetCertificateValidator(out result)) { DiagnosticUtility.DebugAssert(this.customCertificateValidator == null, ""); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MissingCustomCertificateValidator))); } return result; } internal void MakeReadOnly() { this.isReadOnly = true; } void ThrowIfImmutable() { if (this.isReadOnly) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); } } } } // 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
- DependencyObjectValidator.cs
- SiteMapProvider.cs
- DecimalSumAggregationOperator.cs
- UnsafePeerToPeerMethods.cs
- ColorContext.cs
- BamlLocalizer.cs
- PrintEvent.cs
- Viewport3DVisual.cs
- SqlUdtInfo.cs
- SourceChangedEventArgs.cs
- XmlUnspecifiedAttribute.cs
- FontUnitConverter.cs
- FormatterConverter.cs
- OLEDB_Enum.cs
- SettingsPropertyValue.cs
- ThreadAbortException.cs
- WebServiceMethodData.cs
- UInt32Storage.cs
- GridView.cs
- HWStack.cs
- CommonRemoteMemoryBlock.cs
- SudsCommon.cs
- PreloadedPackages.cs
- Closure.cs
- DataGridItemEventArgs.cs
- HtmlButton.cs
- PreservationFileReader.cs
- HostProtectionException.cs
- XmlUnspecifiedAttribute.cs
- WorkflowServiceHostFactory.cs
- RightsManagementPermission.cs
- CodeExporter.cs
- DebugView.cs
- ScriptRegistrationManager.cs
- ZipIOExtraFieldElement.cs
- InfoCardXmlSerializer.cs
- WebPartMinimizeVerb.cs
- StateWorkerRequest.cs
- UpdatePanelTriggerCollection.cs
- Decorator.cs
- Style.cs
- LicenseContext.cs
- NoResizeSelectionBorderGlyph.cs
- EventLogPermission.cs
- WpfWebRequestHelper.cs
- DesignerWidgets.cs
- BoundPropertyEntry.cs
- SqlNotificationEventArgs.cs
- SettingsPropertyValueCollection.cs
- ThreadInterruptedException.cs
- SecurityContext.cs
- TreeView.cs
- TextEffect.cs
- ControlBindingsConverter.cs
- TypedServiceChannelBuilder.cs
- ListControl.cs
- Visual3DCollection.cs
- FormViewModeEventArgs.cs
- PopOutPanel.cs
- RootBrowserWindowProxy.cs
- ContentOperations.cs
- ColumnResizeAdorner.cs
- WindowsUpDown.cs
- SynchronizedInputPattern.cs
- ReflectTypeDescriptionProvider.cs
- WebPartDescription.cs
- XmlParser.cs
- AdornerLayer.cs
- SecurityContext.cs
- HandleCollector.cs
- Blend.cs
- KeyboardNavigation.cs
- DeleteIndexBinder.cs
- StructuralCache.cs
- SapiRecognizer.cs
- EntityCollection.cs
- RightsManagementEncryptedStream.cs
- JsonCollectionDataContract.cs
- ForwardPositionQuery.cs
- HeaderCollection.cs
- FormattedText.cs
- MissingMethodException.cs
- EntityViewGenerationConstants.cs
- ToolStripContentPanelDesigner.cs
- ApplicationServicesHostFactory.cs
- SwitchAttribute.cs
- Image.cs
- IISUnsafeMethods.cs
- RecognizeCompletedEventArgs.cs
- NotImplementedException.cs
- EmptyCollection.cs
- RenderingEventArgs.cs
- SessionStateSection.cs
- PointAnimationBase.cs
- ReaderOutput.cs
- CrossSiteScriptingValidation.cs
- FieldNameLookup.cs
- SwitchLevelAttribute.cs
- RawUIStateInputReport.cs
- OdbcParameterCollection.cs