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
- ExtensionQuery.cs
- ImageClickEventArgs.cs
- BlurEffect.cs
- SqlBulkCopy.cs
- BindingMAnagerBase.cs
- BaseCAMarshaler.cs
- ConfigXmlElement.cs
- StyleSheet.cs
- FormViewPageEventArgs.cs
- WorkflowApplicationCompletedEventArgs.cs
- Win32SafeHandles.cs
- HatchBrush.cs
- WebPartVerb.cs
- IdentityNotMappedException.cs
- SoapReflectionImporter.cs
- HelpEvent.cs
- DiagnosticStrings.cs
- ECDsa.cs
- NavigatorOutput.cs
- C14NUtil.cs
- CanonicalFontFamilyReference.cs
- AttributeAction.cs
- FormViewUpdatedEventArgs.cs
- DbCommandTree.cs
- ComplexPropertyEntry.cs
- PointUtil.cs
- QueryOutputWriterV1.cs
- ClientRuntimeConfig.cs
- NameGenerator.cs
- SByte.cs
- XsdCachingReader.cs
- ServiceOperationUIEditor.cs
- FileUtil.cs
- DictionaryItemsCollection.cs
- SqlXmlStorage.cs
- SortExpressionBuilder.cs
- ScriptControl.cs
- Literal.cs
- CommandEventArgs.cs
- WeakReadOnlyCollection.cs
- DataSourceXmlElementAttribute.cs
- SoundPlayer.cs
- StructuredTypeEmitter.cs
- SiteMap.cs
- UTF32Encoding.cs
- TreeViewHitTestInfo.cs
- StrongNameMembershipCondition.cs
- DurableOperationContext.cs
- ToolStripSplitStackLayout.cs
- UpdateCommand.cs
- SByte.cs
- TextParaClient.cs
- RowUpdatingEventArgs.cs
- StateManagedCollection.cs
- SmiMetaDataProperty.cs
- xml.cs
- SmiEventSink_Default.cs
- StatusBarAutomationPeer.cs
- itemelement.cs
- DefaultClaimSet.cs
- WebBrowserEvent.cs
- precedingsibling.cs
- codemethodreferenceexpression.cs
- TemplateControlBuildProvider.cs
- ToolboxItemFilterAttribute.cs
- PageContentCollection.cs
- SqlDataSourceCommandParser.cs
- SystemNetworkInterface.cs
- LayoutTable.cs
- Component.cs
- BindingExpression.cs
- COM2PropertyDescriptor.cs
- RectValueSerializer.cs
- AttributeUsageAttribute.cs
- SqlExpressionNullability.cs
- ArgumentsParser.cs
- ExtensionWindowResizeGrip.cs
- NestPullup.cs
- ArgumentOutOfRangeException.cs
- SspiNegotiationTokenAuthenticatorState.cs
- TextParagraphProperties.cs
- NavigationProgressEventArgs.cs
- ListenerUnsafeNativeMethods.cs
- LookupNode.cs
- ListViewTableCell.cs
- XmlSchemaSimpleContent.cs
- DataGridViewCell.cs
- GroupLabel.cs
- RemoteWebConfigurationHostStream.cs
- SqlClientMetaDataCollectionNames.cs
- shaperfactoryquerycachekey.cs
- _Rfc2616CacheValidators.cs
- hresults.cs
- StreamUpdate.cs
- RemoteHelper.cs
- FileDialog_Vista_Interop.cs
- DependencyObjectValidator.cs
- CounterCreationDataCollection.cs
- mil_commands.cs
- RealProxy.cs