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
- TimeSpanSecondsConverter.cs
- DecimalAnimationUsingKeyFrames.cs
- RepeaterItemEventArgs.cs
- SoapExtension.cs
- ActivityExecutionContextCollection.cs
- CompilerCollection.cs
- SoapSchemaMember.cs
- ToolStripDropTargetManager.cs
- SmiContextFactory.cs
- TextRenderer.cs
- PageRanges.cs
- XmlValueConverter.cs
- HttpHandlersSection.cs
- XmlChildNodes.cs
- CfgParser.cs
- storepermission.cs
- TypeViewSchema.cs
- HttpApplicationStateWrapper.cs
- GenerateScriptTypeAttribute.cs
- MimeMultiPart.cs
- CodeMemberField.cs
- HtmlForm.cs
- IOException.cs
- TagNameToTypeMapper.cs
- MailMessageEventArgs.cs
- StyleSelector.cs
- UnhandledExceptionEventArgs.cs
- Console.cs
- DataBoundControlAdapter.cs
- HelpKeywordAttribute.cs
- SymbolType.cs
- ConfigXmlText.cs
- RequestNavigateEventArgs.cs
- QuaternionValueSerializer.cs
- TraceUtility.cs
- NativeMethods.cs
- OracleDataReader.cs
- DES.cs
- UrlEncodedParameterWriter.cs
- DesignTimeTemplateParser.cs
- ExpandableObjectConverter.cs
- CornerRadius.cs
- RemotingConfigParser.cs
- DifferencingCollection.cs
- ConfigXmlSignificantWhitespace.cs
- VisualTreeHelper.cs
- Dynamic.cs
- EdmTypeAttribute.cs
- AnimationLayer.cs
- SqlDataReader.cs
- FilteredXmlReader.cs
- InputScopeManager.cs
- _AutoWebProxyScriptEngine.cs
- InstallerTypeAttribute.cs
- SafeFindHandle.cs
- OdbcCommandBuilder.cs
- AutoSizeComboBox.cs
- HwndStylusInputProvider.cs
- PrtTicket_Public.cs
- MergeFilterQuery.cs
- EditingCoordinator.cs
- TrackingCondition.cs
- BrowserCapabilitiesCompiler.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- DataControlFieldCell.cs
- DrawItemEvent.cs
- SafeRegistryHandle.cs
- SapiAttributeParser.cs
- EdmItemCollection.cs
- WebPartEventArgs.cs
- FormView.cs
- ClientClassGenerator.cs
- FaultReasonText.cs
- XpsS0ValidatingLoader.cs
- WSHttpBindingBaseElement.cs
- GiveFeedbackEventArgs.cs
- ValueCollectionParameterReader.cs
- MessageDirection.cs
- ReaderOutput.cs
- Select.cs
- TabControlAutomationPeer.cs
- EventSinkHelperWriter.cs
- SqlMetaData.cs
- AttributeTable.cs
- MetricEntry.cs
- _SafeNetHandles.cs
- PixelFormat.cs
- FixedSOMPageElement.cs
- IgnoreSectionHandler.cs
- SmiContextFactory.cs
- CodeDomConfigurationHandler.cs
- DataChangedEventManager.cs
- HandlerBase.cs
- EventLogHandle.cs
- DataAccessor.cs
- ManipulationPivot.cs
- HttpRuntime.cs
- CultureTableRecord.cs
- DataGridViewComboBoxCell.cs
- PointCollectionConverter.cs