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
- FixUp.cs
- WebConfigurationManager.cs
- LinqDataSourceContextEventArgs.cs
- EmulateRecognizeCompletedEventArgs.cs
- EventLogTraceListener.cs
- AssociationType.cs
- HybridObjectCache.cs
- Root.cs
- ConnectionStringsExpressionBuilder.cs
- ResourceDefaultValueAttribute.cs
- EndOfStreamException.cs
- ExpressionBuilderContext.cs
- NavigationService.cs
- CounterSetInstanceCounterDataSet.cs
- ProcessModuleCollection.cs
- WindowsFormsEditorServiceHelper.cs
- MetadataArtifactLoaderCompositeResource.cs
- FieldDescriptor.cs
- TimeIntervalCollection.cs
- StylusTip.cs
- GenericEnumConverter.cs
- storepermission.cs
- ItemType.cs
- DelegatingTypeDescriptionProvider.cs
- ObjectListCommandEventArgs.cs
- ResumeStoryboard.cs
- CommandBinding.cs
- ProfileGroupSettings.cs
- SetIterators.cs
- MailBnfHelper.cs
- CheckBoxField.cs
- StrongNameUtility.cs
- PersistenceTypeAttribute.cs
- ServiceThrottlingBehavior.cs
- AttributeUsageAttribute.cs
- NotSupportedException.cs
- ConnectionPoolManager.cs
- BaseCodePageEncoding.cs
- PackageStore.cs
- TreeViewEvent.cs
- SqlProviderManifest.cs
- CookieProtection.cs
- AssignDesigner.xaml.cs
- ProfileInfo.cs
- UrlMappingsSection.cs
- LongValidator.cs
- NavigationCommands.cs
- DataSourceXmlTextReader.cs
- GlyphRun.cs
- SerializerWriterEventHandlers.cs
- HttpResponse.cs
- PreservationFileReader.cs
- TransactedReceiveData.cs
- TabItemAutomationPeer.cs
- ConstNode.cs
- SynchronizedInputProviderWrapper.cs
- AlternateViewCollection.cs
- SymbolEqualComparer.cs
- LoadRetryAsyncResult.cs
- WebPartVerb.cs
- TextSelectionHighlightLayer.cs
- filewebresponse.cs
- DataGridViewColumnStateChangedEventArgs.cs
- SubstitutionResponseElement.cs
- CatalogZone.cs
- Typography.cs
- StateManagedCollection.cs
- ChannelManager.cs
- HexParser.cs
- XhtmlBasicPhoneCallAdapter.cs
- CodeSnippetCompileUnit.cs
- SafeFreeMibTable.cs
- WindowsSolidBrush.cs
- Quad.cs
- ItemCollection.cs
- TypeDefinition.cs
- Parameter.cs
- CryptoKeySecurity.cs
- Substitution.cs
- QueryStringParameter.cs
- DataColumnChangeEvent.cs
- SettingsPropertyNotFoundException.cs
- SelectionUIHandler.cs
- TypeSource.cs
- DrawingAttributes.cs
- LogLogRecordHeader.cs
- ScrollItemProviderWrapper.cs
- UIElement3D.cs
- XmlSchemaAll.cs
- SystemUnicastIPAddressInformation.cs
- ToolboxItemFilterAttribute.cs
- WebPartEditorCancelVerb.cs
- DataGridDetailsPresenterAutomationPeer.cs
- PathGeometry.cs
- DirectoryNotFoundException.cs
- HandleRef.cs
- TextRangeSerialization.cs
- CodeObject.cs
- AxisAngleRotation3D.cs
- DesignBindingEditor.cs