Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / ListDependantCardsRequest.cs / 1 / ListDependantCardsRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Summary // Processes a request to find the list of managed cards that use a specific // self issued card for authentication to the IP // // // Specify valid parent requests. // class ListDependantCardsRequest :UIAgentRequest { Uri m_selfIssuedCardId; // Specifies the card identifier. Listm_allCards = new List (); public ListDependantCardsRequest( IntPtr rpcHandle, Stream inArgs, Stream outArgs, ClientUIRequest parent ) : base( rpcHandle, inArgs, outArgs, parent ) { } // // Summary // Marshals input arguments for the request. The arguments are read from a stream in binary. // protected override void OnMarshalInArgs() { BinaryReader reader = new InfoCardBinaryReader( InArgs, Encoding.Unicode ); m_selfIssuedCardId = new Uri( Utility.DeserializeString( reader ) ); } // // Summary // Processes the request. // protected override void OnProcess() { StoreConnection connection = StoreConnection.GetConnection(); try { // // Retrieve all the managed cards that use self issued cards for authentication // // // Get the full list of all infocards. // IList rows = (IList )connection.Query( QueryDetails.FullRow, connection.LocalDataSource, new QueryParameter( SecondaryIndexDefinition.SupportedAuthIndex, (Int32)TokenFactoryCredentialType.SelfIssuedCredential ) ); if( null != rows && 0 != rows.Count ) { for( int i = 0; i < rows.Count; i++ ) { byte[ ] rawForm = rows[ i ].GetDataField(); try { using( MemoryStream stream = new MemoryStream( rawForm ) ) { InfoCard card = new InfoCard( stream ); foreach( TokenCreationParameter param in card.CreationParameters ) { if( param.CredentialType == TokenFactoryCredentialType.SelfIssuedCredential ) { string ppid = param.CredentialSelectors[ CredentialSelectorType.SelfIssuedCardIdSelector ].GetStringWithoutNullTerminator(); if( Utility.CompareByteArrays( Convert.FromBase64String( ppid ), Utility.CreateHash( card.IssuerIdentifierAsBytes, m_selfIssuedCardId ) ) ) { m_allCards.Add( card ); } } } } } finally { Array.Clear( rawForm, 0, rawForm.Length ); } } } } finally { connection.Close(); } } // // Summary // Marshals output arguments for the request. The arguments are written to a stream in binary. // protected override void OnMarshalOutArgs() { Stream stream = OutArgs; BinaryWriter writer = new BinaryWriter( stream, System.Text.Encoding.Unicode ); if( null != m_allCards ) { writer.Write( (Int32)m_allCards.Count); foreach( InfoCard card in m_allCards ) { Utility.SerializeUri( writer, card.Id ); } } else { writer.Write( (Int32)0 ); } } } } // 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
- HybridDictionary.cs
- SessionParameter.cs
- QueryAsyncResult.cs
- EntityDataSourceWrapperCollection.cs
- MailMessage.cs
- Crc32.cs
- XmlSchemaSimpleContentRestriction.cs
- OperationCanceledException.cs
- CharEnumerator.cs
- NetworkStream.cs
- AnimationLayer.cs
- GeometryHitTestParameters.cs
- SqlFileStream.cs
- TabItemAutomationPeer.cs
- ToolstripProfessionalRenderer.cs
- Vector3DValueSerializer.cs
- DateTimeOffsetStorage.cs
- HttpHandlerActionCollection.cs
- _TransmitFileOverlappedAsyncResult.cs
- AnimatedTypeHelpers.cs
- VectorCollectionConverter.cs
- WebServiceEnumData.cs
- DataGridViewAdvancedBorderStyle.cs
- HttpApplicationFactory.cs
- TextBox.cs
- safemediahandle.cs
- WebConfigurationHost.cs
- SqlStatistics.cs
- Monitor.cs
- PenContexts.cs
- ClientSettingsStore.cs
- PathFigure.cs
- ParameterBuilder.cs
- SHA256Managed.cs
- WebBaseEventKeyComparer.cs
- ResponseStream.cs
- DataTransferEventArgs.cs
- XDeferredAxisSource.cs
- CustomValidator.cs
- XPathSelectionIterator.cs
- DelegatingTypeDescriptionProvider.cs
- Task.cs
- shaperfactoryquerycachekey.cs
- LinqDataSourceDeleteEventArgs.cs
- MetadataUtilsSmi.cs
- FileDialog.cs
- FixUpCollection.cs
- XmlSchemaException.cs
- CallContext.cs
- InfoCardKeyedHashAlgorithm.cs
- SimpleRecyclingCache.cs
- Int32RectValueSerializer.cs
- Win32SafeHandles.cs
- SqlDependencyUtils.cs
- X509ChainPolicy.cs
- SmtpReplyReaderFactory.cs
- SerializationEventsCache.cs
- PortCache.cs
- ContentElement.cs
- DecoderExceptionFallback.cs
- HwndHost.cs
- figurelength.cs
- LinqDataSourceUpdateEventArgs.cs
- SQLBytesStorage.cs
- DefaultSection.cs
- PhysicalAddress.cs
- XmlDocument.cs
- FileNotFoundException.cs
- DataPointer.cs
- DesignSurfaceServiceContainer.cs
- InputScopeConverter.cs
- DataFieldConverter.cs
- DataProtection.cs
- Assert.cs
- _ConnectionGroup.cs
- Mouse.cs
- ComplexTypeEmitter.cs
- ZipIOExtraFieldZip64Element.cs
- ZoomPercentageConverter.cs
- InlineCollection.cs
- VectorCollection.cs
- HttpListenerRequest.cs
- DefaultTextStore.cs
- SoapInteropTypes.cs
- XmlWriterDelegator.cs
- WebPartEditorCancelVerb.cs
- DataGridViewLayoutData.cs
- SizeAnimationBase.cs
- ToolStripItemClickedEventArgs.cs
- UriParserTemplates.cs
- SiteMap.cs
- FileDialogCustomPlacesCollection.cs
- XsdDateTime.cs
- XmlHelper.cs
- Point4D.cs
- prompt.cs
- XamlSerializerUtil.cs
- Helpers.cs
- XmlValidatingReaderImpl.cs
- Wildcard.cs