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
- MILUtilities.cs
- Transactions.cs
- UnknownBitmapDecoder.cs
- InputLanguageEventArgs.cs
- FilterRepeater.cs
- TraceInternal.cs
- JsonServiceDocumentSerializer.cs
- NullReferenceException.cs
- XmlToDatasetMap.cs
- OdbcEnvironment.cs
- StyleBamlRecordReader.cs
- ScriptReferenceBase.cs
- SmiMetaDataProperty.cs
- TableStyle.cs
- DbConnectionStringCommon.cs
- SecurityHeaderTokenResolver.cs
- DragDropManager.cs
- DataSourceView.cs
- SystemUdpStatistics.cs
- FormViewCommandEventArgs.cs
- ColumnClickEvent.cs
- KerberosSecurityTokenProvider.cs
- RichTextBoxDesigner.cs
- Decimal.cs
- Directory.cs
- TypeSemantics.cs
- ClientSettingsStore.cs
- ElementMarkupObject.cs
- Asn1IntegerConverter.cs
- TreeViewCancelEvent.cs
- SafeArrayRankMismatchException.cs
- FormClosedEvent.cs
- DBCommand.cs
- ProtectedProviderSettings.cs
- MD5.cs
- MsmqAppDomainProtocolHandler.cs
- securestring.cs
- TransactionCache.cs
- TextTreeObjectNode.cs
- FileSystemEventArgs.cs
- ResourceDictionaryCollection.cs
- TcpChannelFactory.cs
- DataTableMapping.cs
- DataServiceHost.cs
- SettingsAttributes.cs
- JsonUriDataContract.cs
- SqlReferenceCollection.cs
- WebServiceReceive.cs
- ScriptServiceAttribute.cs
- TokenizerHelper.cs
- MatrixUtil.cs
- ObjectStateManagerMetadata.cs
- TcpConnectionPoolSettings.cs
- Accessible.cs
- TypeNameParser.cs
- FontFamily.cs
- SelectedCellsChangedEventArgs.cs
- ToolStripSettings.cs
- VisualProxy.cs
- ArrayTypeMismatchException.cs
- WebReferencesBuildProvider.cs
- NativeActivityContext.cs
- EventProvider.cs
- FontStyle.cs
- Container.cs
- PreparingEnlistment.cs
- FixedSchema.cs
- UTF32Encoding.cs
- IsolatedStorageException.cs
- WorkflowValidationFailedException.cs
- DataSourceCache.cs
- TransportElement.cs
- ElementFactory.cs
- PassportAuthenticationEventArgs.cs
- SqlUserDefinedTypeAttribute.cs
- InfiniteTimeSpanConverter.cs
- ItemCollection.cs
- CellNormalizer.cs
- SettingsPropertyNotFoundException.cs
- TextTreeUndoUnit.cs
- StaticExtension.cs
- SeparatorAutomationPeer.cs
- DependencyObjectProvider.cs
- IIS7UserPrincipal.cs
- PropertyCondition.cs
- MultipleViewPattern.cs
- MenuItemCollectionEditor.cs
- XmlSchemaValidator.cs
- ProviderBase.cs
- Timer.cs
- TextEffect.cs
- SettingsProviderCollection.cs
- UnmanagedHandle.cs
- ObjectDisposedException.cs
- WindowsListViewGroupHelper.cs
- ConfigXmlCDataSection.cs
- DeviceContexts.cs
- BufferedWebEventProvider.cs
- datacache.cs
- NoneExcludedImageIndexConverter.cs