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
- datacache.cs
- FlowDocumentPageViewerAutomationPeer.cs
- AppDomainShutdownMonitor.cs
- List.cs
- ElementsClipboardData.cs
- RequestCacheManager.cs
- RadioButtonBaseAdapter.cs
- XmlNamedNodeMap.cs
- HttpModuleAction.cs
- EntitySetBase.cs
- StreamGeometryContext.cs
- ProfileService.cs
- RootProfilePropertySettingsCollection.cs
- XmlDocumentFieldSchema.cs
- Int32Converter.cs
- SharedDp.cs
- ProcessModuleDesigner.cs
- _DomainName.cs
- DataSourceCacheDurationConverter.cs
- ToolboxControl.cs
- ColumnMapVisitor.cs
- XmlSchemaIdentityConstraint.cs
- CaretElement.cs
- GifBitmapDecoder.cs
- BitmapMetadata.cs
- DeclarativeCatalogPart.cs
- InterleavedZipPartStream.cs
- FacetValueContainer.cs
- Configuration.cs
- xsdvalidator.cs
- BaseParser.cs
- MenuCommand.cs
- XmlSchemaObjectCollection.cs
- AppDomainUnloadedException.cs
- NavigatorInput.cs
- ClientConfigurationHost.cs
- GraphicsState.cs
- PropertyGeneratedEventArgs.cs
- GroupByExpressionRewriter.cs
- FontWeightConverter.cs
- TreeNode.cs
- ToolboxBitmapAttribute.cs
- RenderContext.cs
- BaseEntityWrapper.cs
- CalendarDay.cs
- SoundPlayer.cs
- BindableAttribute.cs
- CorrelationResolver.cs
- PackWebRequest.cs
- RemoteArgument.cs
- TextEditorSelection.cs
- SynchronizedInputPattern.cs
- ReadOnlyAttribute.cs
- CodeAccessSecurityEngine.cs
- Scalars.cs
- CorrelationValidator.cs
- SocketPermission.cs
- WebPartChrome.cs
- Point4D.cs
- WebEventCodes.cs
- OSFeature.cs
- SqlProcedureAttribute.cs
- BitConverter.cs
- Utility.cs
- VisualBrush.cs
- Rotation3DAnimationBase.cs
- PropertyGridEditorPart.cs
- ResourceSet.cs
- UseLicense.cs
- SelectedCellsChangedEventArgs.cs
- HandlerFactoryCache.cs
- NextPreviousPagerField.cs
- AnimatedTypeHelpers.cs
- Rect.cs
- MultiSelectRootGridEntry.cs
- MissingMethodException.cs
- SystemColors.cs
- safelinkcollection.cs
- FixedSOMGroup.cs
- HelpFileFileNameEditor.cs
- EventTrigger.cs
- CorrelationToken.cs
- XhtmlBasicLiteralTextAdapter.cs
- MDIControlStrip.cs
- ComboBoxItem.cs
- XmlWellformedWriterHelpers.cs
- FileDialog_Vista_Interop.cs
- PopupRoot.cs
- SqlSelectStatement.cs
- AxisAngleRotation3D.cs
- EntityDataSourceUtil.cs
- XamlWriter.cs
- PersonalizationProvider.cs
- DataTableReader.cs
- PolicyChain.cs
- ChangeTracker.cs
- CollectionContainer.cs
- RawUIStateInputReport.cs
- Stack.cs
- BookmarkNameHelper.cs