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
- CachedResourceDictionaryExtension.cs
- HelpHtmlBuilder.cs
- RegexCode.cs
- SafeNativeMethods.cs
- MiniModule.cs
- XPathArrayIterator.cs
- UnsafeNativeMethods.cs
- SwitchLevelAttribute.cs
- PolyLineSegmentFigureLogic.cs
- ZeroOpNode.cs
- DBNull.cs
- BuildManagerHost.cs
- PropertyItem.cs
- Mappings.cs
- DataGridTablesFactory.cs
- MimeFormatExtensions.cs
- CleanUpVirtualizedItemEventArgs.cs
- XPathExpr.cs
- BinaryMessageEncodingElement.cs
- BreadCrumbTextConverter.cs
- DetailsViewPagerRow.cs
- Validator.cs
- TreeNodeCollectionEditorDialog.cs
- ExtendedProtectionPolicy.cs
- AddIn.cs
- ManagementInstaller.cs
- Attribute.cs
- AnimationStorage.cs
- XmlAutoDetectWriter.cs
- ApplicationSecurityManager.cs
- SharedPerformanceCounter.cs
- SelectionRange.cs
- TableRow.cs
- SmuggledIUnknown.cs
- CurrentChangedEventManager.cs
- RegisteredDisposeScript.cs
- TreeNodeStyle.cs
- TypeBuilderInstantiation.cs
- CqlWriter.cs
- AssociationSet.cs
- TextPointer.cs
- ModelVisual3D.cs
- XmlSchemaGroup.cs
- EtwTrace.cs
- Marshal.cs
- XmlSchemaSimpleTypeUnion.cs
- TypeConverter.cs
- ComponentChangingEvent.cs
- CodeCommentStatement.cs
- LinkedResourceCollection.cs
- PropertiesTab.cs
- XPathCompileException.cs
- CodeAttributeDeclaration.cs
- WindowsListView.cs
- OpacityConverter.cs
- PermissionSetEnumerator.cs
- WindowsFormsEditorServiceHelper.cs
- ReferenceConverter.cs
- ButtonFieldBase.cs
- ConfigurationManagerHelper.cs
- RuleSetDialog.cs
- InputElement.cs
- DPCustomTypeDescriptor.cs
- MinMaxParagraphWidth.cs
- WeakRefEnumerator.cs
- DataFieldConverter.cs
- ListViewUpdatedEventArgs.cs
- NonSerializedAttribute.cs
- entityreference_tresulttype.cs
- ConnectionsZoneAutoFormat.cs
- PathSegment.cs
- ADConnectionHelper.cs
- ResourceDisplayNameAttribute.cs
- GeneratedContractType.cs
- ActiveXHelper.cs
- OleDbCommand.cs
- DataTransferEventArgs.cs
- PersonalizationStateQuery.cs
- SqlDataSourceEnumerator.cs
- DbInsertCommandTree.cs
- DateTimeParse.cs
- MimeTypeAttribute.cs
- ComponentChangingEvent.cs
- InternalRelationshipCollection.cs
- Literal.cs
- LowerCaseStringConverter.cs
- SystemEvents.cs
- ObjectStateFormatter.cs
- CompilerParameters.cs
- DefaultEventAttribute.cs
- FixUpCollection.cs
- CompositeKey.cs
- ServiceBusyException.cs
- CustomAttributeBuilder.cs
- TdsRecordBufferSetter.cs
- CodeGenerator.cs
- BaseDataList.cs
- ApplicationDirectoryMembershipCondition.cs
- ImageCollectionCodeDomSerializer.cs
- XmlSchemaAttributeGroupRef.cs