Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / RSATokenProvider.cs / 1 / RSATokenProvider.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
//
// Presharp uses the c# pragma mechanism to supress its warnings.
// These are not recognised by the base compiler so we need to explictly
// disable the following warnings. See http://winweb/cse/Tools/PREsharp/userguide/default.asp
// for details.
//
#pragma warning disable 1634, 1691 // unknown message, unknown pragma
namespace Microsoft.InfoCards
{
using System;
using System.IdentityModel.Selectors;
using System.IdentityModel.Tokens;
using System.ServiceModel;
using System.ServiceModel.Security;
using System.ServiceModel.Security.Tokens;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.IdentityModel;
using System.Security.Cryptography.Xml;
using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace;
using System.Collections.ObjectModel;
using System.Collections.Generic;
//
// This class is used to provide a custom token provider for adding an endorsing signature token to the RST
// message sent to a managed card STS. The endorsing signature must be added if the UseKey field is present
// in the RST.
//
internal class RSATokenProvider : SecurityTokenProvider, IDisposable
{
InfoCardPolicy m_policy;
InfoCard m_card;
SelfIssuedAuthProofToken m_RSAToken;
public RSATokenProvider( InfoCardPolicy policy, InfoCard card )
{
IDT.ThrowInvalidArgumentConditional( null == policy, "policy" );
IDT.ThrowInvalidArgumentConditional( null == card, "card" );
m_policy = policy;
m_card = card;
}
public void Dispose()
{
//
// We must dispose this token explicitly.
//
if ( null != m_RSAToken )
{
m_RSAToken.Dispose();
m_RSAToken = null;
}
}
//
// Summary
// Retrieves a token from the system
//
// Parameters
// timeout - The time span till the call times out
//
// Returns
// The security token.
//
protected override SecurityToken GetTokenCore(TimeSpan timeout)
{
if( null == m_RSAToken )
{
//
// The SelfIssuedAuthProofToken should be renamed. In this case it's just acting as a generic
// wrapper for an RSA key.
//
m_RSAToken = new SelfIssuedAuthProofToken( m_card.GetPrivateCryptography( m_policy.Recipient.GetIdentifier() ),
DateTime.UtcNow + timeout );
}
return m_RSAToken;
}
}
}
// 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
- ScopeCollection.cs
- FloaterBaseParaClient.cs
- XmlSchemaAnnotation.cs
- xmlglyphRunInfo.cs
- QueryableFilterRepeater.cs
- SessionIDManager.cs
- SizeConverter.cs
- BulletChrome.cs
- XmlSerializationWriter.cs
- OracleCommandBuilder.cs
- ImageClickEventArgs.cs
- sortedlist.cs
- RoutedEventValueSerializer.cs
- Stacktrace.cs
- UniqueSet.cs
- FastPropertyAccessor.cs
- SelectionList.cs
- PagedDataSource.cs
- DesignerActionVerbList.cs
- ISAPIWorkerRequest.cs
- HTMLTextWriter.cs
- DynamicResourceExtension.cs
- SerialStream.cs
- DataPager.cs
- CodeGotoStatement.cs
- MarshalByValueComponent.cs
- SendContent.cs
- SmiEventSink_DeferedProcessing.cs
- UpdatableGenericsFeature.cs
- TreeBuilderBamlTranslator.cs
- ModifiableIteratorCollection.cs
- ExtenderHelpers.cs
- EventToken.cs
- DtrList.cs
- AsyncContentLoadedEventArgs.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- ToolStripDropDownClosingEventArgs.cs
- QueryableDataSource.cs
- TreeView.cs
- PropertyEmitter.cs
- ObjectDataSource.cs
- COSERVERINFO.cs
- Expressions.cs
- ReflectionHelper.cs
- IntegerValidator.cs
- OutputWindow.cs
- OutputScopeManager.cs
- BrowserCapabilitiesFactoryBase.cs
- XamlNamespaceHelper.cs
- StylusDevice.cs
- XmlIlGenerator.cs
- XmlStreamedByteStreamReader.cs
- WebPartManager.cs
- TreeNode.cs
- WithParamAction.cs
- CheckedListBox.cs
- IndexerNameAttribute.cs
- _AutoWebProxyScriptEngine.cs
- DataColumnMapping.cs
- ElementAction.cs
- Calendar.cs
- Compiler.cs
- ZipIOExtraFieldElement.cs
- MSAANativeProvider.cs
- Catch.cs
- SessionStateItemCollection.cs
- ExclusiveHandle.cs
- TdsParserSafeHandles.cs
- LogicalTreeHelper.cs
- TextContainerChangedEventArgs.cs
- MatchingStyle.cs
- UserMapPath.cs
- PerfService.cs
- hebrewshape.cs
- TransformDescriptor.cs
- CalendarDateRange.cs
- CngKey.cs
- BitmapEffectDrawingContextState.cs
- EntitySetBaseCollection.cs
- MdiWindowListStrip.cs
- SplitterDesigner.cs
- NamespaceEmitter.cs
- FormsAuthenticationEventArgs.cs
- ProgressBarHighlightConverter.cs
- ManualResetEvent.cs
- HttpWebRequest.cs
- OdbcEnvironment.cs
- ListViewInsertionMark.cs
- Image.cs
- GridViewCommandEventArgs.cs
- SessionPageStateSection.cs
- HostedTcpTransportManager.cs
- CrossAppDomainChannel.cs
- XmlWellformedWriter.cs
- TraversalRequest.cs
- ExtendedProperty.cs
- CodeTypeDeclaration.cs
- ProcessModuleCollection.cs
- FieldAccessException.cs
- CacheChildrenQuery.cs