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
- serverconfig.cs
- ResolveDuplexAsyncResult.cs
- SelectionUIHandler.cs
- PropertyMap.cs
- SignatureGenerator.cs
- EntityRecordInfo.cs
- HttpApplication.cs
- CfgParser.cs
- XamlPointCollectionSerializer.cs
- embossbitmapeffect.cs
- CachedCompositeFamily.cs
- PersonalizationStateInfoCollection.cs
- PseudoWebRequest.cs
- DbProviderFactory.cs
- ObjectDesignerDataSourceView.cs
- TextSelectionProcessor.cs
- CollectionChangedEventManager.cs
- BaseCodeDomTreeGenerator.cs
- DataServiceStreamProviderWrapper.cs
- ImportContext.cs
- CompoundFileIOPermission.cs
- WebPartZoneBase.cs
- SmiEventSink_DeferedProcessing.cs
- ExpressionParser.cs
- DataComponentNameHandler.cs
- AssertSection.cs
- ChangeTracker.cs
- SurrogateEncoder.cs
- QilReference.cs
- UInt32Converter.cs
- TextSchema.cs
- DBSqlParserColumnCollection.cs
- DiffuseMaterial.cs
- MultipartContentParser.cs
- SQLByteStorage.cs
- Ppl.cs
- DataServiceExpressionVisitor.cs
- HttpCacheVaryByContentEncodings.cs
- MsmqHostedTransportManager.cs
- BooleanKeyFrameCollection.cs
- LineMetrics.cs
- WebControlAdapter.cs
- CodeSpit.cs
- VersionedStreamOwner.cs
- OrderingQueryOperator.cs
- pingexception.cs
- XmlSchemaChoice.cs
- ConfigurationPropertyAttribute.cs
- HtmlInputCheckBox.cs
- ViewStateException.cs
- ConfigurationManagerInternalFactory.cs
- ThreadSafeList.cs
- HotSpotCollectionEditor.cs
- figurelengthconverter.cs
- Style.cs
- ISAPIWorkerRequest.cs
- XmlCountingReader.cs
- Misc.cs
- AttachInfo.cs
- FileDialog_Vista.cs
- JavascriptCallbackResponseProperty.cs
- iisPickupDirectory.cs
- PreviewPrintController.cs
- ComponentEditorPage.cs
- CharAnimationUsingKeyFrames.cs
- UpdateCompiler.cs
- XmlStreamedByteStreamReader.cs
- exports.cs
- DescendentsWalker.cs
- SingleObjectCollection.cs
- HwndProxyElementProvider.cs
- DrawingGroup.cs
- Thread.cs
- TableItemPatternIdentifiers.cs
- InternalResources.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- XmlCustomFormatter.cs
- __ComObject.cs
- ResourceExpressionBuilder.cs
- SqlDataSourceCommandEventArgs.cs
- ChannelSinkStacks.cs
- StickyNoteHelper.cs
- HostingEnvironmentSection.cs
- HostedElements.cs
- BaseTemplateCodeDomTreeGenerator.cs
- RepeaterItemEventArgs.cs
- Pen.cs
- RuntimeConfig.cs
- BuildProviderCollection.cs
- SettingsPropertyIsReadOnlyException.cs
- ImportOptions.cs
- UIElementHelper.cs
- UserInitiatedRoutedEventPermission.cs
- RuntimeConfigLKG.cs
- DataGridCell.cs
- Rect.cs
- HandlerBase.cs
- EDesignUtil.cs
- AutomationPattern.cs
- HybridDictionary.cs