Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / MS / Internal / IO / Packaging / CompoundFile / UserUseLicenseDictionaryLoader.cs / 1 / UserUseLicenseDictionaryLoader.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This class is a helper to load a set of associations between a user and the use license // granted to that user. // // History: // 04/19/2005: LGolding: Initial implementation. // 03/08/2006: IgorBel: switch from a dictionary to a Load helper // // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Text; using System.IO; using System.IO.Packaging; using System.Windows; using System.Security.RightsManagement; using MS.Internal; namespace MS.Internal.IO.Packaging.CompoundFile { internal class UserUseLicenseDictionaryLoader { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Constructor. /// internal UserUseLicenseDictionaryLoader(RightsManagementEncryptionTransform rmet) { _dict = new Dictionary(ContentUser._contentUserComparer); // // This constructor is only called from RightsManagementEncryptionTransform // .GetEmbeddedUseLicenses. That method passes "this" as the parameter. // So it can't possibly be null. // Invariant.Assert(rmet != null); Load(rmet); } #endregion Constructors //------------------------------------------------------ // // Internal Properties // //----------------------------------------------------- #region Internal Properties internal Dictionary LoadedDictionary { get { return _dict; } } #endregion Internal Properties //------------------------------------------------------ // // Private Methods // //------------------------------------------------------ #region Private Methods /// /// Load the contents of the dictionary from the compound file. /// /// /// The object that knows how to load use license data from the compound file. /// ////// If private void Load(RightsManagementEncryptionTransform rmet ) { rmet.EnumUseLicenseStreams( new RightsManagementEncryptionTransform.UseLicenseStreamCallback( this.AddUseLicenseFromStreamToDictionary ), null ); } ///is null. /// /// Callback function used by Load. Called once for each use license stream /// in the compound file. Extracts the user and use license from the specified /// stream. /// /// /// The object that knows how to extract license information from the compound file. /// /// /// The stream containing the user/user license pair to be added to the dictionary. /// /// /// Caller-supplied parameter to EnumUseLicenseStreams. Not used. /// /// /// Set to true if the callback function wants to stop the enumeration. This callback /// function never wants to stop the enumeration, so this parameter is not used. /// private void AddUseLicenseFromStreamToDictionary( RightsManagementEncryptionTransform rmet, StreamInfo si, object param, ref bool stop ) { ContentUser user; using (Stream stream = si.GetStream(FileMode.Open, FileAccess.Read)) { using(BinaryReader utf8Reader = new BinaryReader(stream, _utf8Encoding)) { UseLicense useLicense = rmet.LoadUseLicenseAndUserFromStream(utf8Reader, out user); _dict.Add(user, useLicense); } } } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields // // The object that provides the implementation of the IDictionary methods. // private Dictionary_dict; // // Text encoding object used to read or write publish licenses and use licenses. // private UTF8Encoding _utf8Encoding = new UTF8Encoding(); #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // // // Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This class is a helper to load a set of associations between a user and the use license // granted to that user. // // History: // 04/19/2005: LGolding: Initial implementation. // 03/08/2006: IgorBel: switch from a dictionary to a Load helper // // //----------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Text; using System.IO; using System.IO.Packaging; using System.Windows; using System.Security.RightsManagement; using MS.Internal; namespace MS.Internal.IO.Packaging.CompoundFile { internal class UserUseLicenseDictionaryLoader { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Constructor. /// internal UserUseLicenseDictionaryLoader(RightsManagementEncryptionTransform rmet) { _dict = new Dictionary(ContentUser._contentUserComparer); // // This constructor is only called from RightsManagementEncryptionTransform // .GetEmbeddedUseLicenses. That method passes "this" as the parameter. // So it can't possibly be null. // Invariant.Assert(rmet != null); Load(rmet); } #endregion Constructors //------------------------------------------------------ // // Internal Properties // //----------------------------------------------------- #region Internal Properties internal Dictionary LoadedDictionary { get { return _dict; } } #endregion Internal Properties //------------------------------------------------------ // // Private Methods // //------------------------------------------------------ #region Private Methods /// /// Load the contents of the dictionary from the compound file. /// /// /// The object that knows how to load use license data from the compound file. /// ////// If private void Load(RightsManagementEncryptionTransform rmet ) { rmet.EnumUseLicenseStreams( new RightsManagementEncryptionTransform.UseLicenseStreamCallback( this.AddUseLicenseFromStreamToDictionary ), null ); } ///is null. /// /// Callback function used by Load. Called once for each use license stream /// in the compound file. Extracts the user and use license from the specified /// stream. /// /// /// The object that knows how to extract license information from the compound file. /// /// /// The stream containing the user/user license pair to be added to the dictionary. /// /// /// Caller-supplied parameter to EnumUseLicenseStreams. Not used. /// /// /// Set to true if the callback function wants to stop the enumeration. This callback /// function never wants to stop the enumeration, so this parameter is not used. /// private void AddUseLicenseFromStreamToDictionary( RightsManagementEncryptionTransform rmet, StreamInfo si, object param, ref bool stop ) { ContentUser user; using (Stream stream = si.GetStream(FileMode.Open, FileAccess.Read)) { using(BinaryReader utf8Reader = new BinaryReader(stream, _utf8Encoding)) { UseLicense useLicense = rmet.LoadUseLicenseAndUserFromStream(utf8Reader, out user); _dict.Add(user, useLicense); } } } #endregion Private Methods //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields // // The object that provides the implementation of the IDictionary methods. // private Dictionary_dict; // // Text encoding object used to read or write publish licenses and use licenses. // private UTF8Encoding _utf8Encoding = new UTF8Encoding(); #endregion Private Fields } } // 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
- AsyncCompletedEventArgs.cs
- RunClient.cs
- DataGridTextBoxColumn.cs
- EventSourceCreationData.cs
- Array.cs
- CodeAttributeDeclarationCollection.cs
- DoubleLink.cs
- ClientScriptManager.cs
- WebPartTransformerCollection.cs
- AccessedThroughPropertyAttribute.cs
- XamlValidatingReader.cs
- RecognizedPhrase.cs
- VirtualDirectoryMapping.cs
- BasicViewGenerator.cs
- CompositeClientFormatter.cs
- Point4D.cs
- ProfileSettingsCollection.cs
- VariableQuery.cs
- IndexedEnumerable.cs
- CommandLibraryHelper.cs
- TemplateFactory.cs
- ObjectCacheSettings.cs
- DataControlFieldCell.cs
- listitem.cs
- DispatcherHookEventArgs.cs
- SystemParameters.cs
- BitmapEffectCollection.cs
- XmlSortKeyAccumulator.cs
- ColumnCollection.cs
- FileSystemEventArgs.cs
- InputMethodStateChangeEventArgs.cs
- SystemTcpStatistics.cs
- DataServiceRequestException.cs
- DataGridDetailsPresenterAutomationPeer.cs
- HttpGetClientProtocol.cs
- ImageInfo.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- DataGridRowsPresenter.cs
- GeneralTransform3DTo2D.cs
- UndirectedGraph.cs
- DeviceContexts.cs
- PrePrepareMethodAttribute.cs
- ConfigurationValidatorBase.cs
- PlatformNotSupportedException.cs
- PartialClassGenerationTaskInternal.cs
- DbParameterCollection.cs
- BindValidationContext.cs
- ValidationSummary.cs
- EntityStoreSchemaGenerator.cs
- GridItemProviderWrapper.cs
- RawStylusInputCustomData.cs
- JsonQNameDataContract.cs
- SchemaInfo.cs
- HostedTransportConfigurationManager.cs
- Privilege.cs
- Synchronization.cs
- DetailsViewInsertEventArgs.cs
- SemaphoreSecurity.cs
- Item.cs
- EncodingNLS.cs
- DesignDataSource.cs
- InputLanguage.cs
- Rect.cs
- CqlLexerHelpers.cs
- RoutedEventValueSerializer.cs
- HtmlInputReset.cs
- DataSourceCache.cs
- NewArrayExpression.cs
- ToolBarButtonClickEvent.cs
- ToolStripGripRenderEventArgs.cs
- MergePropertyDescriptor.cs
- BrowserCapabilitiesCompiler.cs
- ScanQueryOperator.cs
- DataGridViewEditingControlShowingEventArgs.cs
- CellIdBoolean.cs
- Enumerable.cs
- TextSerializer.cs
- OutOfMemoryException.cs
- DiscoveryServerProtocol.cs
- bindurihelper.cs
- httpapplicationstate.cs
- LineGeometry.cs
- ValidationEventArgs.cs
- GridItem.cs
- httpapplicationstate.cs
- SecurityDocument.cs
- ValidationEventArgs.cs
- ResourcePool.cs
- ImageIndexConverter.cs
- HandlerBase.cs
- XMLSchema.cs
- Journaling.cs
- FileVersionInfo.cs
- ExtendedProtectionPolicyTypeConverter.cs
- IncrementalCompileAnalyzer.cs
- XmlSerializationReader.cs
- DataGridCaption.cs
- WebPartsSection.cs
- PropertyPathConverter.cs
- SystemIPv4InterfaceProperties.cs