Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Selectors / X509SecurityTokenProvider.cs / 1305376 / X509SecurityTokenProvider.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.IdentityModel.Selectors
{
using System.IdentityModel.Tokens;
using System.Security.Cryptography.X509Certificates;
public class X509SecurityTokenProvider : SecurityTokenProvider, IDisposable
{
X509Certificate2 certificate;
public X509SecurityTokenProvider(X509Certificate2 certificate)
{
if (certificate == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("certificate");
}
this.certificate = new X509Certificate2(certificate);
}
public X509SecurityTokenProvider(StoreLocation storeLocation, StoreName storeName, X509FindType findType, object findValue)
{
if (findValue == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("findValue");
}
X509CertificateStore store = new X509CertificateStore(storeName, storeLocation);
X509Certificate2Collection certificates = null;
try
{
store.Open(OpenFlags.ReadOnly);
certificates = store.Find(findType, findValue, false);
if (certificates.Count < 1)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityTokenException(SR.GetString(SR.CannotFindCert, storeName, storeLocation, findType, findValue)));
}
if (certificates.Count > 1)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityTokenException(SR.GetString(SR.FoundMultipleCerts, storeName, storeLocation, findType, findValue)));
}
this.certificate = new X509Certificate2(certificates[0]);
}
finally
{
SecurityUtils.ResetAllCertificates(certificates);
store.Close();
}
}
public X509Certificate2 Certificate
{
get { return this.certificate; }
}
protected override SecurityToken GetTokenCore(TimeSpan timeout)
{
return new X509SecurityToken(this.certificate);
}
public void Dispose()
{
this.certificate.Reset();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SearchForVirtualItemEventArgs.cs
- RequestCachingSection.cs
- ProcessModuleCollection.cs
- WebBrowserDesigner.cs
- AttributeAction.cs
- DebugHandleTracker.cs
- GenerateTemporaryAssemblyTask.cs
- CompositeFontInfo.cs
- DataGridViewRowsRemovedEventArgs.cs
- Models.cs
- SoapTypeAttribute.cs
- Restrictions.cs
- Attribute.cs
- sqlnorm.cs
- DetailsViewUpdateEventArgs.cs
- WinInet.cs
- URLIdentityPermission.cs
- AspCompat.cs
- SessionIDManager.cs
- FileDataSourceCache.cs
- Lease.cs
- Subtree.cs
- DataGridViewComboBoxCell.cs
- RSAPKCS1SignatureFormatter.cs
- KeyFrames.cs
- ResourceDescriptionAttribute.cs
- DelegateSerializationHolder.cs
- StrongName.cs
- DivideByZeroException.cs
- BaseResourcesBuildProvider.cs
- Overlapped.cs
- Random.cs
- RequestQueryParser.cs
- CalendarButtonAutomationPeer.cs
- PageParserFilter.cs
- Script.cs
- XamlSerializerUtil.cs
- LongValidator.cs
- CodeExpressionCollection.cs
- ToolboxDataAttribute.cs
- TableLayoutPanel.cs
- BufferModesCollection.cs
- ImageMap.cs
- DecoderReplacementFallback.cs
- WindowsTitleBar.cs
- SoapWriter.cs
- TreeNode.cs
- OperatingSystem.cs
- PictureBoxDesigner.cs
- __Error.cs
- PropertyCollection.cs
- DecimalSumAggregationOperator.cs
- ItemCollection.cs
- PropertyOverridesTypeEditor.cs
- GridViewUpdatedEventArgs.cs
- AggregationMinMaxHelpers.cs
- TagNameToTypeMapper.cs
- NumberSubstitution.cs
- XmlUtilWriter.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- CodeDirectoryCompiler.cs
- Socket.cs
- SocketElement.cs
- TableNameAttribute.cs
- Processor.cs
- UnauthorizedAccessException.cs
- DesignerActionPanel.cs
- TablePattern.cs
- ExtensionSimplifierMarkupObject.cs
- HebrewNumber.cs
- RuntimeConfigLKG.cs
- Point4DConverter.cs
- XPathQilFactory.cs
- Axis.cs
- LineServicesRun.cs
- ProtectedProviderSettings.cs
- CommonEndpointBehaviorElement.cs
- BitmapEffectInputData.cs
- SafeHandles.cs
- XMLDiffLoader.cs
- MDIControlStrip.cs
- PersonalizationState.cs
- WebBrowsableAttribute.cs
- ControlIdConverter.cs
- DateTimeOffsetConverter.cs
- Operator.cs
- WebServiceMethodData.cs
- sqlnorm.cs
- BindingExpressionBase.cs
- CategoryAttribute.cs
- BinaryObjectWriter.cs
- RegisteredScript.cs
- ResourceDescriptionAttribute.cs
- _Semaphore.cs
- TargetPerspective.cs
- NetPipeSection.cs
- FileIOPermission.cs
- PropertyPath.cs
- OutputCacheSection.cs
- IPipelineRuntime.cs