Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RotationValidation.cs
- HtmlTitle.cs
- SiteMapDataSource.cs
- TypeUnloadedException.cs
- SimpleWebHandlerParser.cs
- WebPartsPersonalization.cs
- FamilyTypefaceCollection.cs
- GridViewEditEventArgs.cs
- EntityContainerEmitter.cs
- XMLSyntaxException.cs
- EnumBuilder.cs
- BaseAddressPrefixFilterElementCollection.cs
- ItemMap.cs
- OleDbCommand.cs
- Parsers.cs
- UInt64Storage.cs
- NetPeerTcpBinding.cs
- _LocalDataStore.cs
- SapiRecoContext.cs
- Executor.cs
- SqlNodeAnnotation.cs
- FormViewCommandEventArgs.cs
- ExtendedProtectionPolicy.cs
- CriticalExceptions.cs
- ProgressBarHighlightConverter.cs
- BamlRecordReader.cs
- LayoutEngine.cs
- AnnotationService.cs
- util.cs
- ExpanderAutomationPeer.cs
- CompositionTarget.cs
- IDispatchConstantAttribute.cs
- DataGridViewComboBoxEditingControl.cs
- ObjectDataProvider.cs
- Convert.cs
- NavigationWindowAutomationPeer.cs
- _ProxyRegBlob.cs
- GetWinFXPath.cs
- TrustManager.cs
- RestHandlerFactory.cs
- ImportCatalogPart.cs
- XmlNodeChangedEventManager.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ActivityCodeDomReferenceService.cs
- httpserverutility.cs
- PeerEndPoint.cs
- GroupBoxDesigner.cs
- TraceContextRecord.cs
- AuthenticateEventArgs.cs
- WindowHelperService.cs
- LayoutDump.cs
- StateMachineWorkflow.cs
- MethodExpr.cs
- ADMembershipProvider.cs
- OSEnvironmentHelper.cs
- MonthCalendar.cs
- RelationshipEnd.cs
- StringBuilder.cs
- FaultPropagationRecord.cs
- WebPartTransformerCollection.cs
- Floater.cs
- HttpServerVarsCollection.cs
- HitTestWithPointDrawingContextWalker.cs
- RowCache.cs
- Quaternion.cs
- ScriptControl.cs
- BasicBrowserDialog.cs
- LightweightEntityWrapper.cs
- AttachedPropertyInfo.cs
- ExtentJoinTreeNode.cs
- DataBinder.cs
- ImpersonateTokenRef.cs
- UpdateExpressionVisitor.cs
- PrimitiveXmlSerializers.cs
- SafeCryptoHandles.cs
- ObjectDataSourceSelectingEventArgs.cs
- ToolStripProgressBar.cs
- CodePageEncoding.cs
- GenericsInstances.cs
- InitializationEventAttribute.cs
- DATA_BLOB.cs
- ProfileSection.cs
- TextStore.cs
- ChannelSinkStacks.cs
- WebPartConnectionsConfigureVerb.cs
- XmlCustomFormatter.cs
- WindowsAuthenticationModule.cs
- PointAnimationUsingPath.cs
- UnsafePeerToPeerMethods.cs
- CodeArrayCreateExpression.cs
- InkCanvasSelection.cs
- TypeConverterHelper.cs
- SByteStorage.cs
- BooleanExpr.cs
- FunctionImportMapping.cs
- InputLanguageProfileNotifySink.cs
- FormClosedEvent.cs
- XmlSchemaInclude.cs
- PagePropertiesChangingEventArgs.cs
- WaitForChangedResult.cs