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
- TextSelection.cs
- DurationConverter.cs
- PrePrepareMethodAttribute.cs
- SqlMethodTransformer.cs
- WebSysDisplayNameAttribute.cs
- TextRangeEditLists.cs
- prefixendpointaddressmessagefiltertable.cs
- ObjectToken.cs
- METAHEADER.cs
- EntitySetBase.cs
- CompilerScopeManager.cs
- GlobalizationAssembly.cs
- SelectionListComponentEditor.cs
- DragDrop.cs
- WindowsFormsLinkLabel.cs
- ContentElement.cs
- Region.cs
- FontEmbeddingManager.cs
- SecurityDescriptor.cs
- SuppressMessageAttribute.cs
- CommandLibraryHelper.cs
- SchemaDeclBase.cs
- BinaryReader.cs
- NaturalLanguageHyphenator.cs
- DockPattern.cs
- DiagnosticsConfigurationHandler.cs
- ComponentChangedEvent.cs
- BaseDataList.cs
- CriticalExceptions.cs
- TriggerCollection.cs
- IApplicationTrustManager.cs
- DataServiceExpressionVisitor.cs
- SiteMapDataSource.cs
- StyleModeStack.cs
- X509Chain.cs
- TransactionChannelFactory.cs
- ListItemParagraph.cs
- Roles.cs
- Int64Storage.cs
- DecoratedNameAttribute.cs
- AutoGeneratedFieldProperties.cs
- StyleCollection.cs
- HandlerMappingMemo.cs
- CqlIdentifiers.cs
- BCryptHashAlgorithm.cs
- ReflectionTypeLoadException.cs
- PolyBezierSegment.cs
- RegexTree.cs
- ToolStripDropDownItemDesigner.cs
- TextBoxAutoCompleteSourceConverter.cs
- ListMarkerSourceInfo.cs
- DbDataAdapter.cs
- BaseUriHelper.cs
- ToolStripSeparator.cs
- ValidationHelper.cs
- ObjectStateFormatter.cs
- ModifiableIteratorCollection.cs
- Publisher.cs
- AssemblyNameProxy.cs
- AssemblyResolver.cs
- XmlSchemaException.cs
- MenuItemBindingCollection.cs
- XmlILConstructAnalyzer.cs
- HtmlEmptyTagControlBuilder.cs
- SortExpressionBuilder.cs
- IdentityNotMappedException.cs
- CqlBlock.cs
- httpapplicationstate.cs
- FunctionCommandText.cs
- ErrorRuntimeConfig.cs
- SharedPersonalizationStateInfo.cs
- UriParserTemplates.cs
- WriteLine.cs
- DataGridViewHitTestInfo.cs
- XslNumber.cs
- Permission.cs
- QuaternionConverter.cs
- TypeUnloadedException.cs
- DbMetaDataColumnNames.cs
- CodeCommentStatement.cs
- PointF.cs
- TransactionManager.cs
- HttpCacheVary.cs
- GenericPrincipal.cs
- AddressHeader.cs
- InplaceBitmapMetadataWriter.cs
- InputLangChangeEvent.cs
- Serializer.cs
- WindowsAuthenticationModule.cs
- SystemInformation.cs
- MappingModelBuildProvider.cs
- ToolStripLocationCancelEventArgs.cs
- SQLGuidStorage.cs
- base64Transforms.cs
- HtmlTableCellCollection.cs
- DependencyProperty.cs
- XmlSchemaImport.cs
- RewritingValidator.cs
- EventWaitHandleSecurity.cs
- ActivityBindForm.cs