Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / IdentityElement.cs / 1 / IdentityElement.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System;
using System.ServiceModel;
using System.Configuration;
using System.IdentityModel.Claims;
using System.IdentityModel.Policy;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Xml;
public sealed partial class IdentityElement : ConfigurationElement
{
public IdentityElement()
{
}
[ConfigurationProperty(ConfigurationStrings.UserPrincipalName)]
public UserPrincipalNameElement UserPrincipalName
{
get { return (UserPrincipalNameElement)base[ConfigurationStrings.UserPrincipalName]; }
}
[ConfigurationProperty(ConfigurationStrings.ServicePrincipalName)]
public ServicePrincipalNameElement ServicePrincipalName
{
get { return (ServicePrincipalNameElement)base[ConfigurationStrings.ServicePrincipalName]; }
}
[ConfigurationProperty(ConfigurationStrings.Dns)]
public DnsElement Dns
{
get { return (DnsElement)base[ConfigurationStrings.Dns]; }
}
[ConfigurationProperty(ConfigurationStrings.Rsa)]
public RsaElement Rsa
{
get { return (RsaElement)base[ConfigurationStrings.Rsa]; }
}
[ConfigurationProperty(ConfigurationStrings.Certificate)]
public CertificateElement Certificate
{
get { return (CertificateElement)base[ConfigurationStrings.Certificate]; }
}
[ConfigurationProperty(ConfigurationStrings.CertificateReference)]
public CertificateReferenceElement CertificateReference
{
get { return (CertificateReferenceElement)base[ConfigurationStrings.CertificateReference]; }
}
internal void Copy(IdentityElement source)
{
if (null == source)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source");
}
PropertyInformationCollection properties = source.ElementInformation.Properties;
if (properties[ConfigurationStrings.UserPrincipalName].ValueOrigin != PropertyValueOrigin.Default)
{
this.UserPrincipalName.Value = source.UserPrincipalName.Value;
}
if (properties[ConfigurationStrings.ServicePrincipalName].ValueOrigin != PropertyValueOrigin.Default)
{
this.ServicePrincipalName.Value = source.ServicePrincipalName.Value;
}
if (properties[ConfigurationStrings.Certificate].ValueOrigin != PropertyValueOrigin.Default)
{
this.Certificate.EncodedValue = source.Certificate.EncodedValue;
}
if (properties[ConfigurationStrings.CertificateReference].ValueOrigin != PropertyValueOrigin.Default)
{
this.CertificateReference.StoreName = source.CertificateReference.StoreName;
this.CertificateReference.StoreLocation = source.CertificateReference.StoreLocation;
this.CertificateReference.X509FindType = source.CertificateReference.X509FindType;
this.CertificateReference.FindValue = source.CertificateReference.FindValue;
}
}
public void InitializeFrom(EndpointIdentity identity)
{
if (identity == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("identity");
}
Claim claim = identity.IdentityClaim;
if (ClaimTypes.Dns.Equals(claim.ClaimType))
{
this.Dns.Value = (string)claim.Resource;
}
else if (ClaimTypes.Spn.Equals(claim.ClaimType))
{
this.ServicePrincipalName.Value = (string)claim.Resource;
}
else if (ClaimTypes.Upn.Equals(claim.ClaimType))
{
this.UserPrincipalName.Value = (string)claim.Resource;
}
else if (ClaimTypes.Rsa.Equals(claim.ClaimType))
{
this.Rsa.Value = ((RSA)claim.Resource).ToXmlString(false);
}
else if (identity is X509CertificateEndpointIdentity)
{
X509Certificate2Collection certs = ((X509CertificateEndpointIdentity)identity).Certificates;
#pragma warning suppress 56506 //[....]; this.Certificate can never be null (underlying configuration system guarantees)
this.Certificate.EncodedValue = Convert.ToBase64String(certs.Export(certs.Count == 1 ? X509ContentType.SerializedCert : X509ContentType.SerializedStore));
}
}
}
}
// 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
- WorkflowInlining.cs
- Events.cs
- Int64.cs
- ReflectTypeDescriptionProvider.cs
- ContainerVisual.cs
- WindowsFormsEditorServiceHelper.cs
- FlowLayoutSettings.cs
- XsdDuration.cs
- MemberMaps.cs
- SelectionRange.cs
- SharedDp.cs
- ExtendedPropertyCollection.cs
- IsolatedStorageFileStream.cs
- NullExtension.cs
- Pen.cs
- InvalidCastException.cs
- ApplicationDirectory.cs
- safex509handles.cs
- CodeChecksumPragma.cs
- ToolStripItemEventArgs.cs
- GeneralTransform3DGroup.cs
- Rectangle.cs
- WebServiceClientProxyGenerator.cs
- XmlSchemaAnnotation.cs
- AlphabeticalEnumConverter.cs
- Stroke2.cs
- ConnectionPoolManager.cs
- SingleStorage.cs
- ProcessHost.cs
- TrackingWorkflowEventArgs.cs
- IncrementalHitTester.cs
- SchemaInfo.cs
- CompressionTracing.cs
- MessageQueuePermissionEntryCollection.cs
- ActionFrame.cs
- Rect.cs
- EntityCollectionChangedParams.cs
- WindowsAuthenticationModule.cs
- SqlFormatter.cs
- MenuItemStyle.cs
- HeaderedItemsControl.cs
- ConfigurationManagerHelper.cs
- StatusBarItem.cs
- HttpContext.cs
- NumberSubstitution.cs
- DocumentSchemaValidator.cs
- OuterGlowBitmapEffect.cs
- CardSpaceException.cs
- Connector.cs
- ScaleTransform3D.cs
- RuntimeResourceSet.cs
- Floater.cs
- FactoryMaker.cs
- NTAccount.cs
- NavigationWindow.cs
- ClientSession.cs
- SqlMethods.cs
- DataGridViewCellCancelEventArgs.cs
- Point3DConverter.cs
- DocumentReference.cs
- InputLangChangeEvent.cs
- PenContext.cs
- WinInetCache.cs
- SamlSubject.cs
- StructureChangedEventArgs.cs
- PeerNameRecordCollection.cs
- Conditional.cs
- ReadingWritingEntityEventArgs.cs
- ForwardPositionQuery.cs
- VisualBrush.cs
- DataTableTypeConverter.cs
- Mapping.cs
- ItemCollection.cs
- FullTextLine.cs
- RepeaterItem.cs
- QueueProcessor.cs
- StackOverflowException.cs
- PenContext.cs
- MouseEventArgs.cs
- FormsIdentity.cs
- entityreference_tresulttype.cs
- PrintPageEvent.cs
- BitmapEffectInputData.cs
- JapaneseLunisolarCalendar.cs
- ToolBarOverflowPanel.cs
- StateBag.cs
- MouseGestureValueSerializer.cs
- Int16.cs
- AlternationConverter.cs
- WebEvents.cs
- PolicyUtility.cs
- MultiPageTextView.cs
- DragEvent.cs
- CustomPeerResolverService.cs
- Substitution.cs
- QilTypeChecker.cs
- Documentation.cs
- KeyConstraint.cs
- DataGridViewHeaderCell.cs
- ToolStripDesignerUtils.cs