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
- EventlogProvider.cs
- PackageRelationshipSelector.cs
- LinkLabel.cs
- QueryAccessibilityHelpEvent.cs
- _Events.cs
- PathGeometry.cs
- XMLUtil.cs
- DataBoundControlHelper.cs
- DiagnosticsElement.cs
- TimeSpan.cs
- RangeValueProviderWrapper.cs
- QueryParameter.cs
- FontStretch.cs
- ListViewGroupConverter.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- DataGridViewUtilities.cs
- ConditionalAttribute.cs
- ClrProviderManifest.cs
- PropertyEmitter.cs
- RegexNode.cs
- TdsEnums.cs
- ReflectTypeDescriptionProvider.cs
- AtomicFile.cs
- exports.cs
- SupportsEventValidationAttribute.cs
- Random.cs
- CodeGroup.cs
- UrlMapping.cs
- SafeEventLogReadHandle.cs
- XmlIlGenerator.cs
- DecodeHelper.cs
- AnnotationAdorner.cs
- RuntimeConfig.cs
- FileUtil.cs
- GetReadStreamResult.cs
- TextFormattingConverter.cs
- SmiGettersStream.cs
- DotExpr.cs
- ExtensionDataObject.cs
- CalendarButton.cs
- TextChangedEventArgs.cs
- SqlDataSourceSelectingEventArgs.cs
- DrawingBrush.cs
- TextSegment.cs
- ContextQuery.cs
- DataKeyPropertyAttribute.cs
- DateTimeConstantAttribute.cs
- SqlServer2KCompatibilityAnnotation.cs
- DataGridViewCellStyle.cs
- XmlSchemaSimpleTypeRestriction.cs
- CustomErrorsSectionWrapper.cs
- Pts.cs
- DataGridViewComboBoxCell.cs
- ResourceCodeDomSerializer.cs
- ListViewItem.cs
- AttachedPropertyDescriptor.cs
- DiscoveryDocumentReference.cs
- Thickness.cs
- IntSecurity.cs
- TimeSpanSecondsConverter.cs
- EntryWrittenEventArgs.cs
- UnmanagedMemoryAccessor.cs
- DbConnectionHelper.cs
- NonSerializedAttribute.cs
- SqlFacetAttribute.cs
- LinkedResourceCollection.cs
- CroppedBitmap.cs
- CodeMethodInvokeExpression.cs
- CatalogPartChrome.cs
- VectorAnimationUsingKeyFrames.cs
- RewritingValidator.cs
- TextSelectionHighlightLayer.cs
- _ListenerResponseStream.cs
- MatrixCamera.cs
- SelectedDatesCollection.cs
- XmlDeclaration.cs
- SqlDataSourceSummaryPanel.cs
- Zone.cs
- FontResourceCache.cs
- UserThread.cs
- MonitorWrapper.cs
- AccessViolationException.cs
- HttpException.cs
- URLIdentityPermission.cs
- ExpressionHelper.cs
- BatchStream.cs
- AnnotationElement.cs
- WindowsListViewItem.cs
- CookieHandler.cs
- FixUpCollection.cs
- ClientBuildManager.cs
- CollectionEditor.cs
- TimeIntervalCollection.cs
- storepermission.cs
- SequenceFullException.cs
- ToolStripOverflowButton.cs
- MenuItem.cs
- pingexception.cs
- RoutedEventValueSerializer.cs
- CertificateReferenceElement.cs