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
- WindowsTooltip.cs
- HMACMD5.cs
- NavigationProperty.cs
- ControlOperationBehavior.cs
- StorageEntityTypeMapping.cs
- CreateUserWizard.cs
- DecoratedNameAttribute.cs
- ExceptionHandlers.cs
- InputProviderSite.cs
- XmlAttribute.cs
- DoubleConverter.cs
- PropertyPathConverter.cs
- ClosableStream.cs
- ToolStripSystemRenderer.cs
- ControlTemplate.cs
- DefaultTextStoreTextComposition.cs
- PolicyLevel.cs
- MissingSatelliteAssemblyException.cs
- RtfFormatStack.cs
- SelectingProviderEventArgs.cs
- XPathNodeList.cs
- Boolean.cs
- PrintDialogException.cs
- CollectionDataContract.cs
- FixedTextPointer.cs
- DataSource.cs
- SpeechDetectedEventArgs.cs
- DSACryptoServiceProvider.cs
- ProxyManager.cs
- DataGridComboBoxColumn.cs
- webclient.cs
- ConditionalDesigner.cs
- InheritablePropertyChangeInfo.cs
- PolicyException.cs
- FontFamily.cs
- DetailsViewRow.cs
- IndependentlyAnimatedPropertyMetadata.cs
- LoginName.cs
- UnmanagedHandle.cs
- IndexedString.cs
- DesignerMetadata.cs
- InstanceStore.cs
- DataGridViewColumnHeaderCell.cs
- WebContext.cs
- BroadcastEventHelper.cs
- StyleSelector.cs
- ContextInformation.cs
- XmlNode.cs
- Animatable.cs
- WindowsRichEditRange.cs
- KeyedHashAlgorithm.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- ExpandCollapsePatternIdentifiers.cs
- DocumentEventArgs.cs
- TypeRefElement.cs
- WebZone.cs
- JsonDeserializer.cs
- PropertyValidationContext.cs
- LoginName.cs
- DbLambda.cs
- SecurityElement.cs
- ConnectionProviderAttribute.cs
- LicFileLicenseProvider.cs
- SafeRightsManagementPubHandle.cs
- DataGridView.cs
- EventBuilder.cs
- LinqDataSourceUpdateEventArgs.cs
- FamilyTypeface.cs
- Tablet.cs
- DataObjectEventArgs.cs
- VScrollBar.cs
- UICuesEvent.cs
- SafeFileHandle.cs
- ResourceExpressionBuilder.cs
- PnrpPermission.cs
- DirectoryNotFoundException.cs
- AuthenticationException.cs
- Win32SafeHandles.cs
- Parser.cs
- UriTemplateMatch.cs
- MenuItemBinding.cs
- GuidConverter.cs
- TableColumnCollection.cs
- TransformerTypeCollection.cs
- ResourceDictionary.cs
- StyleTypedPropertyAttribute.cs
- Message.cs
- PathGeometry.cs
- ContextMenuService.cs
- RectangleGeometry.cs
- ClientCultureInfo.cs
- DataGridViewDataConnection.cs
- SQLMembershipProvider.cs
- NTAccount.cs
- SqlTypesSchemaImporter.cs
- ValidationService.cs
- WindowsAuthenticationModule.cs
- XmlSchemaSimpleContentExtension.cs
- AutomationIdentifier.cs
- VirtualPathUtility.cs