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
- NonPrimarySelectionGlyph.cs
- SQLMoneyStorage.cs
- AgileSafeNativeMemoryHandle.cs
- EmitterCache.cs
- Matrix.cs
- ConfigurationSettings.cs
- ClientScriptManagerWrapper.cs
- ImportedPolicyConversionContext.cs
- CharAnimationUsingKeyFrames.cs
- NumberFunctions.cs
- TransformerInfoCollection.cs
- ListControlDesigner.cs
- TakeQueryOptionExpression.cs
- CodeSubDirectory.cs
- Int16AnimationBase.cs
- DataList.cs
- PopupRootAutomationPeer.cs
- ellipse.cs
- NameScopePropertyAttribute.cs
- ChangesetResponse.cs
- ListContractAdapter.cs
- SizeConverter.cs
- IDataContractSurrogate.cs
- WebPartDescription.cs
- ImageDrawing.cs
- WebPartTransformerAttribute.cs
- listitem.cs
- QualifiedId.cs
- ObjectDataSourceSelectingEventArgs.cs
- XmlSchemaSimpleTypeRestriction.cs
- WaitingCursor.cs
- ColumnResult.cs
- oledbmetadatacollectionnames.cs
- ServicePointManagerElement.cs
- RegistrySecurity.cs
- ColorDialog.cs
- OperationContractGenerationContext.cs
- ToggleButtonAutomationPeer.cs
- AgileSafeNativeMemoryHandle.cs
- ConditionalDesigner.cs
- ZipPackage.cs
- Simplifier.cs
- GetPageNumberCompletedEventArgs.cs
- SvcMapFileSerializer.cs
- DeclaredTypeValidatorAttribute.cs
- DiscoveryExceptionDictionary.cs
- ApplicationManager.cs
- PropertyOverridesTypeEditor.cs
- MultiTrigger.cs
- DataObject.cs
- OutputWindow.cs
- MetadataPropertyAttribute.cs
- CompileLiteralTextParser.cs
- DtrList.cs
- StringAttributeCollection.cs
- DataException.cs
- RoutedEventArgs.cs
- ImageIndexConverter.cs
- MediaTimeline.cs
- WebPartDeleteVerb.cs
- CommandHelper.cs
- Decimal.cs
- TextBoxView.cs
- FrameworkReadOnlyPropertyMetadata.cs
- BridgeDataReader.cs
- HttpHandlerActionCollection.cs
- UserControlBuildProvider.cs
- CqlParserHelpers.cs
- DataGridViewColumnDesigner.cs
- EpmCustomContentSerializer.cs
- DataGridViewColumnConverter.cs
- CodeMemberField.cs
- CommandEventArgs.cs
- XmlTextReaderImpl.cs
- EntryWrittenEventArgs.cs
- MultiSelector.cs
- ImageMap.cs
- ViewStateModeByIdAttribute.cs
- CookieProtection.cs
- GenericTypeParameterBuilder.cs
- GridViewRowCollection.cs
- DesignerHelpers.cs
- OracleDataAdapter.cs
- CommandID.cs
- AspNetSynchronizationContext.cs
- SqlDataSource.cs
- TemplateContentLoader.cs
- XhtmlBasicPanelAdapter.cs
- ArgIterator.cs
- VariableQuery.cs
- XNodeValidator.cs
- SmtpDigestAuthenticationModule.cs
- ClientBuildManager.cs
- base64Transforms.cs
- DataColumn.cs
- Ipv6Element.cs
- IRCollection.cs
- FixUpCollection.cs
- WithParamAction.cs
- DefaultHttpHandler.cs