|
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Security.Tokens
{
using System;
using System.Security.Cryptography.X509Certificates;
using System.Runtime.CompilerServices;
using System.IdentityModel.Selectors;
using System.IdentityModel.Tokens;
class SecurityTokenProviderContainer
{
SecurityTokenProvider tokenProvider;
public SecurityTokenProviderContainer(SecurityTokenProvider tokenProvider)
{
if (tokenProvider == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("tokenProvider");
}
this.tokenProvider = tokenProvider;
}
public SecurityTokenProvider TokenProvider
{
get { return this.tokenProvider; }
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void Close(TimeSpan timeout)
{
SecurityUtils.CloseTokenProviderIfRequired(this.tokenProvider, timeout);
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void Open(TimeSpan timeout)
{
SecurityUtils.OpenTokenProviderIfRequired(this.tokenProvider, timeout);
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void Abort()
{
SecurityUtils.AbortTokenProviderIfRequired(this.tokenProvider);
}
[MethodImpl(MethodImplOptions.NoInlining)]
public X509Certificate2 GetCertificate(TimeSpan timeout)
{
X509SecurityToken token = this.tokenProvider.GetToken(timeout) as X509SecurityToken;
if (token != null)
{
return token.Certificate;
}
else
{
return null;
}
}
}
}
|