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
- MobileRedirect.cs
- AdPostCacheSubstitution.cs
- Preprocessor.cs
- TextureBrush.cs
- Hyperlink.cs
- documentsequencetextview.cs
- SoapUnknownHeader.cs
- Stack.cs
- Highlights.cs
- ContextMenuStripGroup.cs
- DataObjectPastingEventArgs.cs
- ChannelServices.cs
- RecognizerInfo.cs
- XmlQueryRuntime.cs
- RightsManagementEncryptionTransform.cs
- BadImageFormatException.cs
- Converter.cs
- ListViewSelectEventArgs.cs
- ProvidersHelper.cs
- HtmlInputSubmit.cs
- SimpleBitVector32.cs
- XmlDataSource.cs
- XpsFilter.cs
- PeerCredential.cs
- TripleDES.cs
- RadioButton.cs
- BookmarkEventArgs.cs
- columnmapfactory.cs
- GlobalEventManager.cs
- BaseTransportHeaders.cs
- MenuBase.cs
- WhitespaceSignificantCollectionAttribute.cs
- documentsequencetextpointer.cs
- ParserStreamGeometryContext.cs
- Crc32.cs
- WebServicesSection.cs
- ScriptResourceHandler.cs
- CodeCompileUnit.cs
- PenLineJoinValidation.cs
- ToolStripItemImageRenderEventArgs.cs
- TableLayoutPanelCellPosition.cs
- SchemaHelper.cs
- ToolStripDropDownItem.cs
- ValidatedMobileControlConverter.cs
- UserPreferenceChangingEventArgs.cs
- ResXBuildProvider.cs
- DesignerActionVerbItem.cs
- CoreSwitches.cs
- ValuePattern.cs
- XmlReflectionMember.cs
- SimpleBitVector32.cs
- MouseBinding.cs
- CaseInsensitiveOrdinalStringComparer.cs
- AmbientProperties.cs
- FileDialogCustomPlacesCollection.cs
- WindowsAuthenticationModule.cs
- FastEncoderWindow.cs
- InvalidAsynchronousStateException.cs
- unsafenativemethodsother.cs
- ButtonBaseAutomationPeer.cs
- _NegoState.cs
- Model3DGroup.cs
- SendActivityEventArgs.cs
- SHA256.cs
- DecimalConstantAttribute.cs
- LinkButton.cs
- WebPartManagerInternals.cs
- XmlSchemaRedefine.cs
- SqlUDTStorage.cs
- ButtonPopupAdapter.cs
- ModifierKeysConverter.cs
- XmlTextEncoder.cs
- X509CertificateCollection.cs
- LinqDataSourceSelectEventArgs.cs
- RoleManagerEventArgs.cs
- StaticSiteMapProvider.cs
- DbMetaDataFactory.cs
- EditingMode.cs
- ConvertTextFrag.cs
- ParseChildrenAsPropertiesAttribute.cs
- RegionIterator.cs
- Transactions.cs
- MemberListBinding.cs
- HttpApplicationFactory.cs
- DbException.cs
- ZipIOCentralDirectoryFileHeader.cs
- XmlCollation.cs
- DependencyPropertyValueSerializer.cs
- SetterBase.cs
- DependencyObject.cs
- RequestTimeoutManager.cs
- RichTextBoxAutomationPeer.cs
- JsonDeserializer.cs
- UnsafeNativeMethods.cs
- TransportChannelFactory.cs
- MarkupObject.cs
- TreeNodeConverter.cs
- ComplexTypeEmitter.cs
- RTTypeWrapper.cs
- CodeAttributeArgumentCollection.cs