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
- GridViewColumnCollection.cs
- RSAPKCS1SignatureFormatter.cs
- Aes.cs
- AlternateView.cs
- storepermission.cs
- BaseCAMarshaler.cs
- ProfileProvider.cs
- BitHelper.cs
- figurelengthconverter.cs
- ConcurrentQueue.cs
- HashFinalRequest.cs
- MenuItemCollection.cs
- StylusDownEventArgs.cs
- UITypeEditor.cs
- DataObjectSettingDataEventArgs.cs
- SqlColumnizer.cs
- WriterOutput.cs
- HttpRuntimeSection.cs
- RuleSetDialog.cs
- CompositeCollection.cs
- Win32KeyboardDevice.cs
- CheckBox.cs
- StylusPointProperty.cs
- SqlCacheDependencySection.cs
- EventLogEntryCollection.cs
- HtmlInputButton.cs
- MemberCollection.cs
- Int32Rect.cs
- ManagementObjectSearcher.cs
- OdbcTransaction.cs
- CapabilitiesUse.cs
- Dynamic.cs
- baseaxisquery.cs
- LineGeometry.cs
- AnimationLayer.cs
- IPAddress.cs
- ActiveXContainer.cs
- QueryPageSettingsEventArgs.cs
- Crypto.cs
- Symbol.cs
- PartialList.cs
- UpdateCommand.cs
- WinFormsUtils.cs
- HttpProfileGroupBase.cs
- LayoutEngine.cs
- EntityClassGenerator.cs
- XmlSchemaAttributeGroup.cs
- MimeTypeAttribute.cs
- Command.cs
- IdentityModelDictionary.cs
- DelayDesigner.cs
- XPathNodePointer.cs
- BmpBitmapEncoder.cs
- ReliableReplySessionChannel.cs
- RowBinding.cs
- ParagraphVisual.cs
- DefaultWorkflowTransactionService.cs
- HwndSubclass.cs
- RoleGroupCollection.cs
- DataServiceResponse.cs
- SctClaimSerializer.cs
- EnumType.cs
- DataGridParentRows.cs
- BaseCAMarshaler.cs
- BufferedReadStream.cs
- SafeNativeMethodsCLR.cs
- MemoryStream.cs
- columnmapfactory.cs
- designeractionlistschangedeventargs.cs
- MemoryStream.cs
- HttpRawResponse.cs
- SafeReversePInvokeHandle.cs
- SocketPermission.cs
- SourceFileInfo.cs
- CodeBlockBuilder.cs
- TransactionValidationBehavior.cs
- SendMessageRecord.cs
- FixedTextSelectionProcessor.cs
- JavaScriptObjectDeserializer.cs
- OutOfProcStateClientManager.cs
- RijndaelManaged.cs
- TraceContextRecord.cs
- WebPartAddingEventArgs.cs
- ScrollBar.cs
- QuaternionValueSerializer.cs
- CacheModeValueSerializer.cs
- CurrencyWrapper.cs
- _SecureChannel.cs
- MembershipUser.cs
- HealthMonitoringSectionHelper.cs
- ArrayWithOffset.cs
- XmlSequenceWriter.cs
- DesignTimeVisibleAttribute.cs
- EntitySetDataBindingList.cs
- XmlSchemaIdentityConstraint.cs
- TimeSpanConverter.cs
- RelationshipType.cs
- SafeSystemMetrics.cs
- TreeChangeInfo.cs
- HeaderLabel.cs