Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- CorrelationManager.cs
- TransformPatternIdentifiers.cs
- GlyphRun.cs
- AspNetPartialTrustHelpers.cs
- TableProviderWrapper.cs
- AspNetSynchronizationContext.cs
- AuthenticationModeHelper.cs
- WebPartZoneAutoFormat.cs
- ConnectionsZone.cs
- AutoSizeToolBoxItem.cs
- TdsRecordBufferSetter.cs
- FlowPosition.cs
- ResourceAttributes.cs
- ByteAnimationUsingKeyFrames.cs
- AssemblyAssociatedContentFileAttribute.cs
- XPathItem.cs
- AffineTransform3D.cs
- TableLayoutPanelDesigner.cs
- DataGridColumn.cs
- AuthenticationException.cs
- ChildTable.cs
- DataSourceCache.cs
- OpenFileDialog.cs
- Token.cs
- BlurBitmapEffect.cs
- WindowsStartMenu.cs
- CustomErrorCollection.cs
- dsa.cs
- ContextMenuStrip.cs
- ToolStripPanel.cs
- UpdateExpressionVisitor.cs
- ConstraintEnumerator.cs
- WebBaseEventKeyComparer.cs
- Empty.cs
- XPathScanner.cs
- AutomationPropertyInfo.cs
- ReadOnlyAttribute.cs
- RecordConverter.cs
- HierarchicalDataSourceIDConverter.cs
- MeasurementDCInfo.cs
- WorkflowMessageEventArgs.cs
- DataSourceHelper.cs
- SID.cs
- CancellationToken.cs
- ContractValidationHelper.cs
- ExecutionPropertyManager.cs
- Html32TextWriter.cs
- DbParameterHelper.cs
- COM2ExtendedUITypeEditor.cs
- InvalidateEvent.cs
- ImageBrush.cs
- StylusPlugin.cs
- XmlFormatExtensionPointAttribute.cs
- HostUtils.cs
- Stacktrace.cs
- OdbcHandle.cs
- UriTemplateClientFormatter.cs
- SimpleType.cs
- Attributes.cs
- IconBitmapDecoder.cs
- WebPartChrome.cs
- ExtenderProvidedPropertyAttribute.cs
- VirtualizingStackPanel.cs
- JapaneseCalendar.cs
- FontNamesConverter.cs
- ObfuscateAssemblyAttribute.cs
- HttpWriter.cs
- Color.cs
- DeferredTextReference.cs
- WebServiceParameterData.cs
- HtmlHistory.cs
- PeerPresenceInfo.cs
- AuditLog.cs
- Buffer.cs
- printdlgexmarshaler.cs
- RecognizerBase.cs
- NumericUpDownAccelerationCollection.cs
- LocalizeDesigner.cs
- SemaphoreFullException.cs
- AutoGeneratedFieldProperties.cs
- Queue.cs
- MenuAdapter.cs
- EntityDataSourceQueryBuilder.cs
- NonParentingControl.cs
- SafeLibraryHandle.cs
- XmlNotation.cs
- Color.cs
- Pts.cs
- SqlBulkCopyColumnMapping.cs
- SwitchElementsCollection.cs
- AuthenticatingEventArgs.cs
- TextBoxBase.cs
- VisualStyleInformation.cs
- RecognizedWordUnit.cs
- iisPickupDirectory.cs
- ping.cs
- DescendentsWalker.cs
- CriticalFileToken.cs
- TextCharacters.cs
- BooleanProjectedSlot.cs