e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
81 lines
3.9 KiB
C#
81 lines
3.9 KiB
C#
//------------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//------------------------------------------------------------------------------
|
|
|
|
using System.ComponentModel;
|
|
using System.Configuration;
|
|
using System.IdentityModel.Tokens;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
using System.ServiceModel.Security;
|
|
|
|
namespace System.IdentityModel.Configuration
|
|
{
|
|
/// <summary>
|
|
/// Manages the configuration of a X509CertificateValidation element in IdentityConfiguration.
|
|
/// </summary>
|
|
public sealed partial class X509CertificateValidationElement : ConfigurationElement
|
|
{
|
|
const X509CertificateValidationMode DefaultX509CertificateValidationMode = X509CertificateValidationMode.PeerOrChainTrust;
|
|
const X509RevocationMode DefaultX509RevocationMode = X509RevocationMode.Online;
|
|
const StoreLocation DefaultStoreLocation = StoreLocation.LocalMachine;
|
|
|
|
/// <summary>
|
|
/// Mode, optional. Default is PeerOrChainTrust.
|
|
/// </summary>
|
|
[ConfigurationProperty( ConfigurationStrings.X509CertificateValidationMode, IsRequired = false, DefaultValue = DefaultX509CertificateValidationMode )]
|
|
[StandardRuntimeEnumValidator( typeof( X509CertificateValidationMode ) )]
|
|
public X509CertificateValidationMode CertificateValidationMode
|
|
{
|
|
get { return ( X509CertificateValidationMode ) this[ConfigurationStrings.X509CertificateValidationMode]; }
|
|
set { this[ConfigurationStrings.X509CertificateValidationMode] = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// X509RevocationMode, optional. Default is Online.
|
|
/// </summary>
|
|
[ConfigurationProperty( ConfigurationStrings.X509CertificateRevocationMode, IsRequired = false, DefaultValue = DefaultX509RevocationMode )]
|
|
[StandardRuntimeEnumValidator( typeof( X509RevocationMode ) )]
|
|
public X509RevocationMode RevocationMode
|
|
{
|
|
get { return ( X509RevocationMode ) this[ConfigurationStrings.X509CertificateRevocationMode]; }
|
|
set { this[ConfigurationStrings.X509CertificateRevocationMode] = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// TrustedStoreLocation, optional. Default is LocalMachine.
|
|
/// </summary>
|
|
[ConfigurationProperty( ConfigurationStrings.X509TrustedStoreLocation, IsRequired = false, DefaultValue = DefaultStoreLocation )]
|
|
[StandardRuntimeEnumValidator( typeof( StoreLocation ) )]
|
|
public StoreLocation TrustedStoreLocation
|
|
{
|
|
get { return ( StoreLocation ) this[ConfigurationStrings.X509TrustedStoreLocation]; }
|
|
set { this[ConfigurationStrings.X509TrustedStoreLocation] = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// CertificateValidator type, optional.
|
|
/// </summary>
|
|
[ConfigurationProperty( ConfigurationStrings.X509CertificateValidator, IsRequired = false )]
|
|
public CustomTypeElement CertificateValidator
|
|
{
|
|
get { return ( CustomTypeElement ) this[ConfigurationStrings.X509CertificateValidator]; }
|
|
set { this[ConfigurationStrings.X509CertificateValidator] = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns a value indicating whether this element has been configured with non-default values.
|
|
/// </summary>
|
|
internal bool IsConfigured
|
|
{
|
|
get
|
|
{
|
|
return (
|
|
( ElementInformation.Properties[ConfigurationStrings.X509CertificateValidationMode].ValueOrigin != PropertyValueOrigin.Default ) ||
|
|
( ElementInformation.Properties[ConfigurationStrings.X509CertificateRevocationMode].ValueOrigin != PropertyValueOrigin.Default ) ||
|
|
( ElementInformation.Properties[ConfigurationStrings.X509TrustedStoreLocation].ValueOrigin != PropertyValueOrigin.Default ) ||
|
|
CertificateValidator.IsConfigured);
|
|
}
|
|
}
|
|
}
|
|
}
|