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
- LeaseManager.cs
- Screen.cs
- UniformGrid.cs
- ConstNode.cs
- SourceFileInfo.cs
- FixedSOMPageConstructor.cs
- Rect3DConverter.cs
- DynamicILGenerator.cs
- ContainerFilterService.cs
- AttributeCollection.cs
- ArrowControl.xaml.cs
- XPathNodePointer.cs
- TextFormatter.cs
- DataTableTypeConverter.cs
- QueryableFilterUserControl.cs
- CodeTryCatchFinallyStatement.cs
- Helper.cs
- SendKeys.cs
- DataRecord.cs
- CodeStatementCollection.cs
- ConfigurationElementProperty.cs
- PropertyGeneratedEventArgs.cs
- WindowHelperService.cs
- HeaderUtility.cs
- BuildProviderCollection.cs
- DropShadowBitmapEffect.cs
- OuterGlowBitmapEffect.cs
- DataGridViewHitTestInfo.cs
- FunctionDetailsReader.cs
- OuterGlowBitmapEffect.cs
- SourceInterpreter.cs
- DefaultAsyncDataDispatcher.cs
- CustomLineCap.cs
- RequestSecurityTokenSerializer.cs
- DataGridViewComboBoxColumn.cs
- ToolStripLabel.cs
- ButtonChrome.cs
- EventMap.cs
- WebPartCancelEventArgs.cs
- MultipleViewProviderWrapper.cs
- ParallelQuery.cs
- ScrollContentPresenter.cs
- DeclarativeCatalogPart.cs
- ResizeGrip.cs
- MappingModelBuildProvider.cs
- SafeNativeMethodsOther.cs
- HebrewCalendar.cs
- UserControlBuildProvider.cs
- XPathDocument.cs
- WebRequestModulesSection.cs
- CommandPlan.cs
- RepeatBehavior.cs
- CompilerState.cs
- ConfigurationElementProperty.cs
- ConfigurationProperty.cs
- ColorContext.cs
- WindowsIPAddress.cs
- EventDriven.cs
- ServicePointManager.cs
- BufferedStream.cs
- OleDbDataAdapter.cs
- ZoneMembershipCondition.cs
- SqlFacetAttribute.cs
- ClientSettingsStore.cs
- RepeaterCommandEventArgs.cs
- selecteditemcollection.cs
- UpdatePanelTrigger.cs
- BooleanAnimationBase.cs
- PropertyDescriptorCollection.cs
- TypeGeneratedEventArgs.cs
- EventWaitHandleSecurity.cs
- ApplicationFileCodeDomTreeGenerator.cs
- RangeValuePattern.cs
- __Filters.cs
- QuaternionIndependentAnimationStorage.cs
- BitmapEffectDrawing.cs
- WebResourceAttribute.cs
- SafeNativeMethods.cs
- CaseStatementSlot.cs
- ReflectionPermission.cs
- ObjectViewQueryResultData.cs
- ValidationErrorEventArgs.cs
- DbDataAdapter.cs
- IPipelineRuntime.cs
- MissingFieldException.cs
- ToolStrip.cs
- BamlCollectionHolder.cs
- DES.cs
- OletxResourceManager.cs
- InternalSafeNativeMethods.cs
- VolatileResourceManager.cs
- TemplateParser.cs
- ContextStaticAttribute.cs
- MethodCallTranslator.cs
- DSASignatureFormatter.cs
- OutputScope.cs
- LinqToSqlWrapper.cs
- PropertyValidationContext.cs
- TypeElement.cs
- PlaceHolder.cs