Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / CheckStoreFileValidityRequest.cs / 1 / CheckStoreFileValidityRequest.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.InfoCards { using System; using System.Collections.Generic; using System.IO; using System.Xml; using System.Security.Cryptography; using System.Xml.Schema; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // Opens a store file and checks the first element to make sure that this is // a valid infocard store file. // class CheckStoreFileValidityRequest :UIAgentRequest { string m_filename; bool m_valid = true; public CheckStoreFileValidityRequest( IntPtr rpcHandle, Stream inArgs, Stream outArgs, ClientUIRequest parent ) : base( rpcHandle, inArgs, outArgs, parent ) { } protected override void OnInitializeAsSystem() { base.OnInitializeAsSystem(); } // // Summary // Read the marshalled arguments // protected override void OnMarshalInArgs() { BinaryReader reader = new InfoCardBinaryReader( InArgs, System.Text.Encoding.Unicode ); m_filename = Utility.DeserializeString( reader ); } // // Summary // Read the first element of the file // protected override void OnProcess() { try { try { using ( FileStream file = File.OpenRead( m_filename ) ) { // // Use a stream that validates the xml against internally stored schemas. // XmlReaderSettings settings = InfoCardSchemas.CreateDefaultReaderSettings(); settings.IgnoreWhitespace = false; using( XmlReader reader = InfoCardSchemas.CreateReader( file, settings ) ) { IDT.TraceDebug( " Roaming: Check if the store file is valid" ); if( !reader.IsStartElement( XmlNames.WSIdentity.EncryptedStoreElement, XmlNames.WSIdentity.Namespace ) ) { m_valid = false; } } } } catch ( XmlSchemaValidationException e ) { throw IDT.ThrowHelperError( new ImportException( SR.GetString( SR.SchemaValidationFailed) , e ) ); } catch ( UnauthorizedAccessException e ) { throw IDT.ThrowHelperError( new ImportException( SR.GetString( SR.ImportInaccesibleFile ), e ) ); } catch ( IOException e ) { throw IDT.ThrowHelperError( new ImportException( SR.GetString( SR.InvalidImportFile ), e ) ); } catch ( XmlException e ) { throw IDT.ThrowHelperError( new ImportException( SR.GetString( SR.InvalidImportFile ), e ) ); } } catch ( ImportException ) { // // Translate ImportException to the boolean value indicating an invalid file // m_valid = false; } } // // Summary // Write the boolean value to be returned // protected override void OnMarshalOutArgs() { Stream stream = OutArgs; BinaryWriter writer = new BinaryWriter( stream ); writer.Write( m_valid ); } } } // 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
- SecureEnvironment.cs
- WsiProfilesElementCollection.cs
- TextElementAutomationPeer.cs
- X509LogoTypeExtension.cs
- UTF8Encoding.cs
- DataSourceSelectArguments.cs
- PathData.cs
- TextShapeableCharacters.cs
- DataGridViewCellPaintingEventArgs.cs
- GridViewColumnHeader.cs
- TimeSpanParse.cs
- ActionMismatchAddressingException.cs
- RawKeyboardInputReport.cs
- IISMapPath.cs
- CreateUserErrorEventArgs.cs
- CacheChildrenQuery.cs
- FormViewUpdatedEventArgs.cs
- RowCache.cs
- HttpApplication.cs
- IncrementalReadDecoders.cs
- ReceiveSecurityHeader.cs
- MessageDecoder.cs
- FormatterConverter.cs
- GridViewColumnHeader.cs
- ExpressionVisitor.cs
- StrokeCollectionConverter.cs
- ZipIOLocalFileBlock.cs
- ClientFormsIdentity.cs
- DependencyPropertyKey.cs
- BatchWriter.cs
- SspiHelper.cs
- EncoderFallback.cs
- InstanceKeyCollisionException.cs
- PrivilegeNotHeldException.cs
- Graph.cs
- XPathException.cs
- documentsequencetextpointer.cs
- GradientBrush.cs
- XmlDataImplementation.cs
- MethodToken.cs
- SqlDataSourceCache.cs
- OuterGlowBitmapEffect.cs
- unitconverter.cs
- EntityTypeEmitter.cs
- XslAstAnalyzer.cs
- ConnectorDragDropGlyph.cs
- SimpleTextLine.cs
- Vector3DValueSerializer.cs
- TemplateField.cs
- MinMaxParagraphWidth.cs
- DoubleConverter.cs
- Oci.cs
- MSAANativeProvider.cs
- ErrorLog.cs
- AsnEncodedData.cs
- ExtensionWindowResizeGrip.cs
- Effect.cs
- DbConnectionPool.cs
- Image.cs
- PointHitTestParameters.cs
- TextSegment.cs
- MatrixCamera.cs
- SystemIcons.cs
- OleDbInfoMessageEvent.cs
- OutputCacheEntry.cs
- DocumentApplicationJournalEntry.cs
- LinkArea.cs
- DiscreteKeyFrames.cs
- SetterBase.cs
- Int64.cs
- DataGridViewRowPrePaintEventArgs.cs
- SqlBulkCopyColumnMappingCollection.cs
- sqlinternaltransaction.cs
- LocalTransaction.cs
- CompositionTarget.cs
- StyleBamlRecordReader.cs
- VisualStyleRenderer.cs
- EncryptedReference.cs
- ToolStripScrollButton.cs
- ConstraintEnumerator.cs
- ExtensibleSyndicationObject.cs
- XsltConvert.cs
- ContentType.cs
- CompilerCollection.cs
- RegexParser.cs
- StoreItemCollection.Loader.cs
- Int32EqualityComparer.cs
- SplineKeyFrames.cs
- ToolStripDropDownClosedEventArgs.cs
- RadioButtonBaseAdapter.cs
- CodeBinaryOperatorExpression.cs
- AtomContentProperty.cs
- TableFieldsEditor.cs
- EventWaitHandleSecurity.cs
- FramingFormat.cs
- GroupAggregateExpr.cs
- AssociationTypeEmitter.cs
- MobileRedirect.cs
- Control.cs
- IBuiltInEvidence.cs