Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / X509CertificateRecipientClientCredential.cs / 1 / X509CertificateRecipientClientCredential.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Security { using System.Collections.Generic; using System.ServiceModel; using System.IdentityModel.Selectors; using System.Runtime.Serialization; using System.Net; using System.Security.Principal; using System.ServiceModel.Security.Tokens; using System.Security.Cryptography.X509Certificates; using System.Web.Security; public sealed class X509CertificateRecipientClientCredential { X509ServiceCertificateAuthentication authentication; internal const StoreLocation DefaultStoreLocation = StoreLocation.CurrentUser; internal const StoreName DefaultStoreName = StoreName.My; internal const X509FindType DefaultFindType = X509FindType.FindBySubjectDistinguishedName; X509Certificate2 defaultCertificate; DictionaryscopedCertificates; bool isReadOnly; internal X509CertificateRecipientClientCredential() { this.authentication = new X509ServiceCertificateAuthentication(); this.scopedCertificates = new Dictionary (); } internal X509CertificateRecipientClientCredential(X509CertificateRecipientClientCredential other) { this.authentication = new X509ServiceCertificateAuthentication(other.authentication); this.defaultCertificate = other.defaultCertificate; this.scopedCertificates = new Dictionary (); foreach (Uri uri in other.ScopedCertificates.Keys) { this.scopedCertificates.Add(uri, other.ScopedCertificates[uri]); } this.isReadOnly = other.isReadOnly; } public X509Certificate2 DefaultCertificate { get { return this.defaultCertificate; } set { ThrowIfImmutable(); this.defaultCertificate = value; } } public Dictionary ScopedCertificates { get { return this.scopedCertificates; } } public X509ServiceCertificateAuthentication Authentication { get { return this.authentication; } } public void SetDefaultCertificate(string subjectName, StoreLocation storeLocation, StoreName storeName) { if (subjectName == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("subjectName"); } SetDefaultCertificate(storeLocation, storeName, DefaultFindType, subjectName); } public void SetDefaultCertificate(StoreLocation storeLocation, StoreName storeName, X509FindType findType, object findValue) { if (findValue == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("findValue"); } ThrowIfImmutable(); this.defaultCertificate = SecurityUtils.GetCertificateFromStore(storeName, storeLocation, findType, findValue, null); } public void SetScopedCertificate(string subjectName, StoreLocation storeLocation, StoreName storeName, Uri targetService) { if (subjectName == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("subjectName"); } SetScopedCertificate(DefaultStoreLocation, DefaultStoreName, DefaultFindType, subjectName, targetService); } public void SetScopedCertificate(StoreLocation storeLocation, StoreName storeName, X509FindType findType, object findValue, Uri targetService) { if (findValue == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("findValue"); } if (targetService == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("targetService"); } ThrowIfImmutable(); X509Certificate2 certificate = SecurityUtils.GetCertificateFromStore(storeName, storeLocation, findType, findValue, null); ScopedCertificates[targetService] = certificate; } internal void MakeReadOnly() { this.isReadOnly = true; this.Authentication.MakeReadOnly(); } 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
- SpotLight.cs
- Pair.cs
- SafeMILHandleMemoryPressure.cs
- TextEmbeddedObject.cs
- InvokeMethodActivity.cs
- ItemCollection.cs
- TableLayoutSettings.cs
- CompoundFileStreamReference.cs
- ThreadPool.cs
- FocusWithinProperty.cs
- CodeMethodMap.cs
- DataBoundControl.cs
- PersistencePipeline.cs
- SchemaImporter.cs
- ListViewGroup.cs
- GridPattern.cs
- XmlBinaryReader.cs
- AdPostCacheSubstitution.cs
- Configuration.cs
- SqlEnums.cs
- ErrorFormatterPage.cs
- COSERVERINFO.cs
- Point4D.cs
- NamespaceList.cs
- FontDifferentiator.cs
- NavigationHelper.cs
- ActivityExecutionFilter.cs
- ClientSettingsStore.cs
- DataListItemEventArgs.cs
- WebPartCollection.cs
- ISCIIEncoding.cs
- CodeConstructor.cs
- SHA256Managed.cs
- StaticSiteMapProvider.cs
- DebuggerAttributes.cs
- ByteStreamMessageUtility.cs
- WebPartDescription.cs
- ConfigXmlText.cs
- StandardRuntimeEnumValidatorAttribute.cs
- XmlMembersMapping.cs
- LoginView.cs
- AnonymousIdentificationSection.cs
- ListViewItem.cs
- ListViewUpdatedEventArgs.cs
- TreeNodeClickEventArgs.cs
- QueryHandler.cs
- StorageAssociationTypeMapping.cs
- StringAnimationBase.cs
- DriveInfo.cs
- JsonCollectionDataContract.cs
- PeerNameRecordCollection.cs
- WebSysDisplayNameAttribute.cs
- ByteAnimationBase.cs
- EventLogTraceListener.cs
- ArgumentValue.cs
- ColorAnimationBase.cs
- RenderData.cs
- UIElementCollection.cs
- GatewayDefinition.cs
- ChtmlTextWriter.cs
- XmlTypeAttribute.cs
- ConstructorNeedsTagAttribute.cs
- DrawingDrawingContext.cs
- Base64Encoding.cs
- SiteMap.cs
- DispatcherTimer.cs
- DbConnectionClosed.cs
- SchemaDeclBase.cs
- NavigationWindow.cs
- safelink.cs
- ParsedAttributeCollection.cs
- RegexTree.cs
- HttpValueCollection.cs
- MetabaseServerConfig.cs
- WebResponse.cs
- ListViewHitTestInfo.cs
- AmbiguousMatchException.cs
- DataException.cs
- TableLayoutStyle.cs
- TrackingCondition.cs
- SqlStatistics.cs
- HttpRuntimeSection.cs
- Input.cs
- ScriptBehaviorDescriptor.cs
- Dynamic.cs
- AtomEntry.cs
- OdbcCommand.cs
- ScriptingAuthenticationServiceSection.cs
- SqlStream.cs
- ErrorActivity.cs
- DataGridViewDataConnection.cs
- ListBox.cs
- StorageEntityContainerMapping.cs
- ErrorStyle.cs
- BypassElement.cs
- ListComponentEditor.cs
- TabItemWrapperAutomationPeer.cs
- RootBrowserWindowProxy.cs
- WSSecureConversation.cs
- MethodToken.cs