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
- BaseValidator.cs
- GetIsBrowserClientRequest.cs
- CategoryNameCollection.cs
- ConfigurationException.cs
- ExceptionUtility.cs
- TextSchema.cs
- CanExecuteRoutedEventArgs.cs
- DataGridCaption.cs
- TextModifier.cs
- WebBrowserSiteBase.cs
- NamespaceQuery.cs
- WebPermission.cs
- GradientSpreadMethodValidation.cs
- SelectedDatesCollection.cs
- SupportingTokenAuthenticatorSpecification.cs
- FrameworkTextComposition.cs
- DependencyProperty.cs
- ResolveCriteriaApril2005.cs
- WebScriptMetadataMessageEncodingBindingElement.cs
- XmlCompatibilityReader.cs
- Slider.cs
- contentDescriptor.cs
- LayoutUtils.cs
- CommentAction.cs
- NonVisualControlAttribute.cs
- SqlNamer.cs
- UDPClient.cs
- SqlBuffer.cs
- WebPartsPersonalizationAuthorization.cs
- SmiRecordBuffer.cs
- EncodingNLS.cs
- CacheManager.cs
- DriveInfo.cs
- EditingCommands.cs
- SchemaNames.cs
- TextEditor.cs
- ImageMapEventArgs.cs
- Inflater.cs
- StorageTypeMapping.cs
- SqlUdtInfo.cs
- ZipIORawDataFileBlock.cs
- EditorPartDesigner.cs
- WindowHideOrCloseTracker.cs
- FontClient.cs
- HwndSource.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- LinqDataSource.cs
- SevenBitStream.cs
- BitmapMetadataBlob.cs
- TypeCodeDomSerializer.cs
- CapabilitiesState.cs
- XmlDocumentViewSchema.cs
- GridSplitterAutomationPeer.cs
- SyndicationSerializer.cs
- ReadOnlyDataSourceView.cs
- RoleGroupCollection.cs
- RichListBox.cs
- OdbcDataAdapter.cs
- ValueTypeFixupInfo.cs
- OleDbErrorCollection.cs
- OracleTimeSpan.cs
- ParseHttpDate.cs
- DeclarativeConditionsCollection.cs
- OdbcConnectionStringbuilder.cs
- WindowsSecurityTokenAuthenticator.cs
- StrokeNodeData.cs
- XDeferredAxisSource.cs
- ActiveDocumentEvent.cs
- WindowsTreeView.cs
- Triplet.cs
- AliasGenerator.cs
- SharedStatics.cs
- HierarchicalDataBoundControlAdapter.cs
- FileRecordSequence.cs
- UTF8Encoding.cs
- ValueTypeFixupInfo.cs
- ElementUtil.cs
- MultipartContentParser.cs
- UpdateCommand.cs
- ControlCollection.cs
- FixedDocument.cs
- FrameworkTemplate.cs
- ConnectionPointGlyph.cs
- OraclePermissionAttribute.cs
- CodeMemberField.cs
- ConfigurationStrings.cs
- WebRequestModuleElementCollection.cs
- ColorTransformHelper.cs
- SendMessageChannelCache.cs
- ColorKeyFrameCollection.cs
- httpstaticobjectscollection.cs
- EmbeddedMailObjectCollectionEditor.cs
- TagPrefixAttribute.cs
- QueryCursorEventArgs.cs
- WebPartDeleteVerb.cs
- securestring.cs
- Condition.cs
- IsolatedStoragePermission.cs
- Compiler.cs
- CodeTypeReferenceExpression.cs