Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / X509ServiceCertificateAuthentication.cs / 1 / X509ServiceCertificateAuthentication.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 X509ServiceCertificateAuthentication { internal const X509CertificateValidationMode DefaultCertificateValidationMode = X509CertificateValidationMode.ChainTrust; 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 X509ServiceCertificateAuthentication() { } internal X509ServiceCertificateAuthentication(X509ServiceCertificateAuthentication 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.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; } } 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
- ToolStripContentPanelRenderEventArgs.cs
- SineEase.cs
- HostElement.cs
- SspiSecurityToken.cs
- WebControl.cs
- NullReferenceException.cs
- XmlDownloadManager.cs
- XhtmlBasicListAdapter.cs
- ObjectDataSourceChooseMethodsPanel.cs
- WebPartVerbCollection.cs
- PieceDirectory.cs
- SymbolEqualComparer.cs
- NativeMethods.cs
- GlyphCache.cs
- COM2Properties.cs
- DataServiceBehavior.cs
- TextElementEnumerator.cs
- InternalsVisibleToAttribute.cs
- BindMarkupExtensionSerializer.cs
- CompModSwitches.cs
- CodeAttributeArgument.cs
- TextClipboardData.cs
- ScrollProviderWrapper.cs
- CssTextWriter.cs
- _SafeNetHandles.cs
- CoTaskMemUnicodeSafeHandle.cs
- ObjectDataProvider.cs
- NetSectionGroup.cs
- ServicePointManager.cs
- ListViewUpdateEventArgs.cs
- Line.cs
- TextParagraphCache.cs
- CodeTypeDeclaration.cs
- FileLogRecordStream.cs
- ContentPlaceHolderDesigner.cs
- PropertyNames.cs
- XmlSchema.cs
- FilterElement.cs
- ObjectViewListener.cs
- AuthenticatedStream.cs
- ItemsControlAutomationPeer.cs
- MouseActionValueSerializer.cs
- GetWinFXPath.cs
- HelloMessageCD1.cs
- IDReferencePropertyAttribute.cs
- ExclusiveHandleList.cs
- EtwProvider.cs
- RenamedEventArgs.cs
- SessionIDManager.cs
- RegistryConfigurationProvider.cs
- SolidBrush.cs
- SecureEnvironment.cs
- StrongNamePublicKeyBlob.cs
- CSharpCodeProvider.cs
- ContentPosition.cs
- WsdlBuildProvider.cs
- RelationshipEndMember.cs
- CodeDOMProvider.cs
- Buffer.cs
- SatelliteContractVersionAttribute.cs
- Group.cs
- MetadataElement.cs
- PageEventArgs.cs
- RegionData.cs
- HwndTarget.cs
- DataServiceProcessingPipelineEventArgs.cs
- ObjectQuery_EntitySqlExtensions.cs
- CommandBindingCollection.cs
- SettingsPropertyIsReadOnlyException.cs
- COM2PropertyBuilderUITypeEditor.cs
- Geometry.cs
- BlockCollection.cs
- XmlSchemaParticle.cs
- HierarchicalDataBoundControlAdapter.cs
- BufferedReadStream.cs
- ObjectAnimationUsingKeyFrames.cs
- WebPartEditorOkVerb.cs
- AutomationAttributeInfo.cs
- ProcessRequestArgs.cs
- TdsParserStaticMethods.cs
- BrowserDefinitionCollection.cs
- ColorEditor.cs
- Literal.cs
- CacheEntry.cs
- Operand.cs
- GradientBrush.cs
- TaskForm.cs
- ResourceCollectionInfo.cs
- WorkItem.cs
- XmlSchemaAnnotated.cs
- DSACryptoServiceProvider.cs
- DbParameterCollection.cs
- MouseActionValueSerializer.cs
- DisposableCollectionWrapper.cs
- SessionEndedEventArgs.cs
- StrokeCollection.cs
- RegionInfo.cs
- UnhandledExceptionEventArgs.cs
- XPathDocumentNavigator.cs
- FaultHandlingFilter.cs