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
- FontNamesConverter.cs
- CharacterMetrics.cs
- ReadOnlyHierarchicalDataSource.cs
- ItemCollectionEditor.cs
- NegatedCellConstant.cs
- CommandHelpers.cs
- ElasticEase.cs
- ProbeMatches11.cs
- TextEndOfLine.cs
- AdRotator.cs
- MemberBinding.cs
- StartUpEventArgs.cs
- RequestResponse.cs
- XmlTextReaderImplHelpers.cs
- BooleanSwitch.cs
- WpfPayload.cs
- ToolStripEditorManager.cs
- SocketInformation.cs
- MessageSecurityOverMsmqElement.cs
- AuthenticationService.cs
- ObservableCollection.cs
- SerializableReadOnlyDictionary.cs
- XmlDataSourceNodeDescriptor.cs
- AmbientLight.cs
- RelationshipType.cs
- LinqExpressionNormalizer.cs
- CaretElement.cs
- SqlDataSourceEnumerator.cs
- DeviceContext.cs
- SessionPageStateSection.cs
- arclist.cs
- DesignerRegion.cs
- DataSourceCacheDurationConverter.cs
- basecomparevalidator.cs
- RootBrowserWindowAutomationPeer.cs
- EditorPartChrome.cs
- LocalizationParserHooks.cs
- EventProxy.cs
- SingleObjectCollection.cs
- GridView.cs
- InternalConfigSettingsFactory.cs
- InvalidCommandTreeException.cs
- TraceEventCache.cs
- ProvidersHelper.cs
- ModelPropertyCollectionImpl.cs
- TiffBitmapEncoder.cs
- SettingsPropertyIsReadOnlyException.cs
- DataGridViewLayoutData.cs
- PartialTrustHelpers.cs
- WorkflowServiceHost.cs
- QuestionEventArgs.cs
- XmlDocumentType.cs
- TraceListener.cs
- ClaimTypes.cs
- XmlKeywords.cs
- RequestCacheValidator.cs
- ImageSource.cs
- ResXBuildProvider.cs
- ProcessThreadDesigner.cs
- Canvas.cs
- DeviceSpecificChoiceCollection.cs
- SQlBooleanStorage.cs
- SystemIPGlobalStatistics.cs
- SynchronizedRandom.cs
- DBSchemaRow.cs
- NullReferenceException.cs
- JapaneseCalendar.cs
- DialogResultConverter.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- MemoryRecordBuffer.cs
- StylusPointPropertyUnit.cs
- EntityModelSchemaGenerator.cs
- MaskDescriptor.cs
- PrimitiveOperationFormatter.cs
- GridEntry.cs
- LabelLiteral.cs
- arclist.cs
- SchemaMerger.cs
- WebRequestModulesSection.cs
- GenericAuthenticationEventArgs.cs
- XamlClipboardData.cs
- ResolveNameEventArgs.cs
- WebServiceReceive.cs
- PropertyChange.cs
- UpDownBaseDesigner.cs
- ObjectDataSource.cs
- XmlFormatReaderGenerator.cs
- DataObject.cs
- ToolZoneDesigner.cs
- TypeSemantics.cs
- TextOptionsInternal.cs
- As.cs
- InputLanguage.cs
- NavigationProperty.cs
- JsonReader.cs
- ColorConverter.cs
- OracleMonthSpan.cs
- TextElementCollectionHelper.cs
- EndpointConfigContainer.cs
- ToolBarTray.cs