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
- IxmlLineInfo.cs
- SelectionProviderWrapper.cs
- CleanUpVirtualizedItemEventArgs.cs
- ToolStripScrollButton.cs
- DefaultAuthorizationContext.cs
- IdentityValidationException.cs
- WeakReferenceList.cs
- BaseCodeDomTreeGenerator.cs
- LicFileLicenseProvider.cs
- SqlConnectionFactory.cs
- RuntimeTrackingProfile.cs
- DataFieldCollectionEditor.cs
- CharacterShapingProperties.cs
- Columns.cs
- WebControlAdapter.cs
- BaseDataBoundControl.cs
- SeverityFilter.cs
- SrgsDocumentParser.cs
- ThemeInfoAttribute.cs
- ComplexLine.cs
- ExpressionPrefixAttribute.cs
- SmtpNegotiateAuthenticationModule.cs
- EmptyWorkItem.cs
- BitConverter.cs
- BitmapEffect.cs
- ProtectedConfigurationProviderCollection.cs
- DataSourceSelectArguments.cs
- HandlerBase.cs
- DataServiceCollectionOfT.cs
- XdrBuilder.cs
- DynamicArgumentDesigner.xaml.cs
- SystemEvents.cs
- HierarchicalDataTemplate.cs
- rsa.cs
- Location.cs
- TypePropertyEditor.cs
- DoubleAnimationUsingKeyFrames.cs
- ContextMenuAutomationPeer.cs
- PopupEventArgs.cs
- IisTraceListener.cs
- DependencyObject.cs
- CachingHintValidation.cs
- MessageContractAttribute.cs
- DoubleMinMaxAggregationOperator.cs
- DataSourceProvider.cs
- NameValuePermission.cs
- CrossSiteScriptingValidation.cs
- InternalControlCollection.cs
- CanonicalFormWriter.cs
- StringInfo.cs
- PrivilegedConfigurationManager.cs
- XmlAttributeOverrides.cs
- Peer.cs
- JsonMessageEncoderFactory.cs
- BinarySecretKeyIdentifierClause.cs
- PartBasedPackageProperties.cs
- OutputScope.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- DataControlFieldCollection.cs
- OleDbSchemaGuid.cs
- StringInfo.cs
- PipeSecurity.cs
- SqlVersion.cs
- Section.cs
- TextElementEnumerator.cs
- CacheOutputQuery.cs
- ImmComposition.cs
- FrameSecurityDescriptor.cs
- BitmapEncoder.cs
- DispatcherHookEventArgs.cs
- StickyNoteHelper.cs
- UInt32Converter.cs
- CfgRule.cs
- BulletedList.cs
- UnsafeNativeMethodsCLR.cs
- Symbol.cs
- Graphics.cs
- PrintController.cs
- RegexNode.cs
- CodeDefaultValueExpression.cs
- RegexCapture.cs
- UIServiceHelper.cs
- MimeFormImporter.cs
- Activity.cs
- MessageDecoder.cs
- DataExpression.cs
- SqlProviderUtilities.cs
- TextTreeTextElementNode.cs
- StateMachine.cs
- FlagsAttribute.cs
- CounterSetInstanceCounterDataSet.cs
- Thickness.cs
- BindMarkupExtensionSerializer.cs
- SamlEvidence.cs
- ApplicationSecurityInfo.cs
- datacache.cs
- ConfigurationStrings.cs
- StyleSheetComponentEditor.cs
- GPPOINT.cs
- SizeIndependentAnimationStorage.cs