Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / MS / Internal / IO / Packaging / CompoundFile / UserUseLicenseDictionaryLoader.cs / 1305600 / 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
- SafeLocalAllocation.cs
- CompositeDataBoundControl.cs
- GridViewAutomationPeer.cs
- DropDownList.cs
- Events.cs
- RelationshipDetailsCollection.cs
- PrimaryKeyTypeConverter.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- DataControlHelper.cs
- ByteStream.cs
- VectorConverter.cs
- SchemaConstraints.cs
- IncrementalCompileAnalyzer.cs
- HostSecurityManager.cs
- _UriSyntax.cs
- COM2ColorConverter.cs
- JournalNavigationScope.cs
- WindowHideOrCloseTracker.cs
- StateInitialization.cs
- X509ServiceCertificateAuthentication.cs
- StatusBarPanel.cs
- SqlDataSourceCache.cs
- PathGeometry.cs
- ProxyHwnd.cs
- DeploymentSection.cs
- DtrList.cs
- StyleModeStack.cs
- NamedObject.cs
- BaseAddressElement.cs
- QilScopedVisitor.cs
- XmlSchemaNotation.cs
- SecurityTokenAuthenticator.cs
- DbDataSourceEnumerator.cs
- DoubleMinMaxAggregationOperator.cs
- ReturnType.cs
- Configuration.cs
- PolicyLevel.cs
- RootContext.cs
- ContentElement.cs
- TextServicesCompartmentContext.cs
- QilBinary.cs
- LambdaCompiler.ControlFlow.cs
- StringExpressionSet.cs
- Validator.cs
- PeerToPeerException.cs
- HyperLinkField.cs
- ObservableCollection.cs
- ErrorWrapper.cs
- DataTemplateSelector.cs
- CaseStatementSlot.cs
- PerspectiveCamera.cs
- Line.cs
- TextParaLineResult.cs
- NameValueFileSectionHandler.cs
- QuinticEase.cs
- AuthorizationContext.cs
- EdmEntityTypeAttribute.cs
- ToolStripItemRenderEventArgs.cs
- HtmlElementErrorEventArgs.cs
- CssTextWriter.cs
- DbConnectionPoolOptions.cs
- PaintEvent.cs
- TabletCollection.cs
- OracleMonthSpan.cs
- RtfControlWordInfo.cs
- XmlSchemaAnyAttribute.cs
- XmlBinaryReaderSession.cs
- ProfileManager.cs
- _ListenerResponseStream.cs
- PageHandlerFactory.cs
- TableChangeProcessor.cs
- SerializationSectionGroup.cs
- ListDataHelper.cs
- updatecommandorderer.cs
- Authorization.cs
- SafeRightsManagementPubHandle.cs
- WebServiceFaultDesigner.cs
- FieldNameLookup.cs
- LongAverageAggregationOperator.cs
- DataSourceControl.cs
- WsdlEndpointConversionContext.cs
- DashStyle.cs
- PasswordBoxAutomationPeer.cs
- ProjectionPruner.cs
- PrintDocument.cs
- HistoryEventArgs.cs
- ExceptionRoutedEventArgs.cs
- ThumbAutomationPeer.cs
- GlyphRun.cs
- Interop.cs
- DockPatternIdentifiers.cs
- XmlTextAttribute.cs
- InsufficientMemoryException.cs
- BaseParaClient.cs
- DynamicEndpointElement.cs
- DrawingCollection.cs
- FormatConvertedBitmap.cs
- Utility.cs
- CatalogZoneDesigner.cs
- VirtualPathProvider.cs