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
- EncoderBestFitFallback.cs
- HostProtectionException.cs
- SR.Designer.cs
- ResourceReader.cs
- XmlName.cs
- CodeTypeParameter.cs
- PasswordPropertyTextAttribute.cs
- GPStream.cs
- WebPartTracker.cs
- ElapsedEventArgs.cs
- SemaphoreSecurity.cs
- InheritanceService.cs
- ValidationHelper.cs
- GroupStyle.cs
- HttpServerProtocol.cs
- EasingKeyFrames.cs
- MenuItem.cs
- EdmProviderManifest.cs
- OracleRowUpdatingEventArgs.cs
- ParseChildrenAsPropertiesAttribute.cs
- SelectionItemPattern.cs
- XmlSubtreeReader.cs
- PipelineDeploymentState.cs
- KeyPressEvent.cs
- WebProxyScriptElement.cs
- TextBox.cs
- CreateUserErrorEventArgs.cs
- OdbcErrorCollection.cs
- CacheChildrenQuery.cs
- SoapTypeAttribute.cs
- EntityCommandExecutionException.cs
- DataGridViewLinkColumn.cs
- EventSetter.cs
- ConfigurationProperty.cs
- IDispatchConstantAttribute.cs
- SqlNode.cs
- RepeatButton.cs
- BufferedStream.cs
- TemplateBaseAction.cs
- Parser.cs
- BitmapDownload.cs
- DocumentPageView.cs
- DetailsViewInsertedEventArgs.cs
- SafeViewOfFileHandle.cs
- CookieParameter.cs
- TableColumn.cs
- Line.cs
- XmlSchemaGroupRef.cs
- ObjectContextServiceProvider.cs
- MemoryFailPoint.cs
- ResourceType.cs
- TreeViewCancelEvent.cs
- HtmlImage.cs
- BoolExpressionVisitors.cs
- SoapServerProtocol.cs
- ConfigurationException.cs
- BinaryUtilClasses.cs
- TaskFormBase.cs
- EpmCustomContentDeSerializer.cs
- StateMachineDesignerPaint.cs
- Odbc32.cs
- StyleHelper.cs
- storepermission.cs
- DeploymentSectionCache.cs
- EFTableProvider.cs
- RegularExpressionValidator.cs
- ComponentResourceKey.cs
- AppModelKnownContentFactory.cs
- XmlSchemaSubstitutionGroup.cs
- BamlBinaryReader.cs
- FactoryGenerator.cs
- Util.cs
- FontClient.cs
- ReadOnlyPropertyMetadata.cs
- PointAnimationUsingPath.cs
- ExceptionUtil.cs
- Exceptions.cs
- UserMapPath.cs
- SelectionProcessor.cs
- objectresult_tresulttype.cs
- MemoryMappedView.cs
- CopyNodeSetAction.cs
- TabItem.cs
- GroupItem.cs
- XamlStyleSerializer.cs
- MediaElementAutomationPeer.cs
- WindowsGraphicsWrapper.cs
- NativeMethods.cs
- HtmlHead.cs
- DataGridTextBox.cs
- HostDesigntimeLicenseContext.cs
- AggregateNode.cs
- BaseTemplateParser.cs
- OrCondition.cs
- InternalBase.cs
- MiniParameterInfo.cs
- DBCommand.cs
- UInt16Converter.cs
- __ComObject.cs
- EditorZone.cs