Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / X509ClientCertificateAuthentication.cs / 1 / X509ClientCertificateAuthentication.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 X509ClientCertificateAuthentication { internal const X509CertificateValidationMode DefaultCertificateValidationMode = X509CertificateValidationMode.ChainTrust; internal const X509RevocationMode DefaultRevocationMode = X509RevocationMode.Online; internal const StoreLocation DefaultTrustedStoreLocation = StoreLocation.LocalMachine; internal const bool DefaultMapCertificateToWindowsAccount = false; static X509CertificateValidator defaultCertificateValidator; X509CertificateValidationMode certificateValidationMode = DefaultCertificateValidationMode; X509RevocationMode revocationMode = DefaultRevocationMode; StoreLocation trustedStoreLocation = DefaultTrustedStoreLocation; X509CertificateValidator customCertificateValidator = null; bool mapClientCertificateToWindowsAccount = DefaultMapCertificateToWindowsAccount; bool includeWindowsGroups = SspiSecurityTokenProvider.DefaultExtractWindowsGroupClaims; bool isReadOnly; internal X509ClientCertificateAuthentication() { } internal X509ClientCertificateAuthentication(X509ClientCertificateAuthentication other) { this.certificateValidationMode = other.certificateValidationMode; this.customCertificateValidator = other.customCertificateValidator; this.includeWindowsGroups = other.includeWindowsGroups; this.mapClientCertificateToWindowsAccount = other.mapClientCertificateToWindowsAccount; this.trustedStoreLocation = other.trustedStoreLocation; this.revocationMode = other.revocationMode; 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.CreateChainTrustValidator(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; } } public bool MapClientCertificateToWindowsAccount { get { return this.mapClientCertificateToWindowsAccount; } set { ThrowIfImmutable(); this.mapClientCertificateToWindowsAccount = value; } } public bool IncludeWindowsGroups { get { return this.includeWindowsGroups; } set { ThrowIfImmutable(); this.includeWindowsGroups = value; } } internal X509CertificateValidator GetCertificateValidator() { if (this.certificateValidationMode == X509CertificateValidationMode.None) { return X509CertificateValidator.None; } else if (this.certificateValidationMode == X509CertificateValidationMode.PeerTrust) { return X509CertificateValidator.PeerTrust; } else if (this.certificateValidationMode == X509CertificateValidationMode.Custom) { if (this.customCertificateValidator == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MissingCustomCertificateValidator))); } return this.customCertificateValidator; } else { bool useMachineContext = this.trustedStoreLocation == StoreLocation.LocalMachine; X509ChainPolicy chainPolicy = new X509ChainPolicy(); chainPolicy.RevocationMode = this.revocationMode; if (this.certificateValidationMode == X509CertificateValidationMode.ChainTrust) { return X509CertificateValidator.CreateChainTrustValidator(useMachineContext, chainPolicy); } else { return X509CertificateValidator.CreatePeerOrChainTrustValidator(useMachineContext, chainPolicy); } } } 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
- VScrollProperties.cs
- sapiproxy.cs
- ImportCatalogPart.cs
- GraphicsPath.cs
- HttpStreamXmlDictionaryReader.cs
- RijndaelCryptoServiceProvider.cs
- ServiceBusyException.cs
- SyntaxCheck.cs
- PeerNameRecordCollection.cs
- HtmlControlPersistable.cs
- MarkupExtensionParser.cs
- SimpleRecyclingCache.cs
- ToggleButton.cs
- XdrBuilder.cs
- NCryptNative.cs
- FileAuthorizationModule.cs
- StorageScalarPropertyMapping.cs
- MexServiceChannelBuilder.cs
- DataRelationPropertyDescriptor.cs
- Image.cs
- CodeTypeOfExpression.cs
- MulticastOption.cs
- EncodingTable.cs
- XmlNullResolver.cs
- OdbcConnectionFactory.cs
- DTCTransactionManager.cs
- XamlReaderHelper.cs
- MessageQueueInstaller.cs
- ColumnMapTranslator.cs
- UIElementCollection.cs
- IListConverters.cs
- _NestedMultipleAsyncResult.cs
- ListViewHitTestInfo.cs
- TypeLoadException.cs
- JsonByteArrayDataContract.cs
- XmlHierarchicalDataSourceView.cs
- XmlUtilWriter.cs
- validationstate.cs
- MessageDispatch.cs
- ValueTypeFixupInfo.cs
- HttpCacheParams.cs
- XmlIlTypeHelper.cs
- TextBox.cs
- OracleException.cs
- StringWriter.cs
- ZipIORawDataFileBlock.cs
- Journaling.cs
- ApplicationId.cs
- TextReader.cs
- DataGridHeaderBorder.cs
- SelfIssuedSamlTokenFactory.cs
- Property.cs
- BinaryExpression.cs
- WindowsGraphics.cs
- IdentitySection.cs
- MaskedTextBox.cs
- FormsAuthenticationCredentials.cs
- ContainerUtilities.cs
- HealthMonitoringSection.cs
- CollectionType.cs
- AspCompat.cs
- TemplateBamlTreeBuilder.cs
- CompositeControl.cs
- DbLambda.cs
- CodeGotoStatement.cs
- configsystem.cs
- ColorConvertedBitmap.cs
- XmlIgnoreAttribute.cs
- SpeakInfo.cs
- DocobjHost.cs
- AffineTransform3D.cs
- XmlDownloadManager.cs
- AvtEvent.cs
- XhtmlBasicTextBoxAdapter.cs
- SocketAddress.cs
- DBSchemaRow.cs
- FontInfo.cs
- ToolStripPanel.cs
- CommandEventArgs.cs
- PassportIdentity.cs
- IsolatedStorageFileStream.cs
- PagesSection.cs
- GeometryModel3D.cs
- ListBindableAttribute.cs
- TableColumnCollectionInternal.cs
- DeflateEmulationStream.cs
- ModelUtilities.cs
- SingleKeyFrameCollection.cs
- XPathNodeList.cs
- RowSpanVector.cs
- TypeConverterHelper.cs
- Rules.cs
- AppSettingsExpressionBuilder.cs
- ButtonFieldBase.cs
- DeclaredTypeElementCollection.cs
- AuthenticatingEventArgs.cs
- GraphicsState.cs
- LicenseException.cs
- LambdaCompiler.Lambda.cs
- DescendantOverDescendantQuery.cs