Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....]: Initial implementation. // 03/08/2006: [....]: 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
- XmlFormatReaderGenerator.cs
- CollectionTypeElement.cs
- unsafenativemethodstextservices.cs
- VectorAnimationBase.cs
- DataContractSerializerServiceBehavior.cs
- SqlWorkflowInstanceStoreLock.cs
- FormsAuthenticationConfiguration.cs
- NavigationHelper.cs
- NameNode.cs
- TimeoutValidationAttribute.cs
- VirtualPathProvider.cs
- SignatureResourcePool.cs
- followingquery.cs
- MetabaseServerConfig.cs
- SocketInformation.cs
- VisualTarget.cs
- SchemaNamespaceManager.cs
- WebScriptMetadataFormatter.cs
- AssertSection.cs
- MergablePropertyAttribute.cs
- MonthChangedEventArgs.cs
- WebMessageEncodingElement.cs
- HttpInputStream.cs
- DataGridColumnCollection.cs
- LineInfo.cs
- RecoverInstanceLocksCommand.cs
- CodeIdentifiers.cs
- BindingExpressionBase.cs
- BufferedGraphics.cs
- NullableDoubleSumAggregationOperator.cs
- ProcessHostFactoryHelper.cs
- DataColumnMapping.cs
- EntitySetRetriever.cs
- SchemaImporterExtensionsSection.cs
- MemberCollection.cs
- Update.cs
- AttachedProperty.cs
- LingerOption.cs
- ExtendedProtectionPolicyElement.cs
- ReachFixedPageSerializerAsync.cs
- ArrayWithOffset.cs
- PtsPage.cs
- KeyValuePairs.cs
- BuildProvider.cs
- DbConnectionFactory.cs
- TableCellCollection.cs
- CultureSpecificCharacterBufferRange.cs
- SqlCacheDependencySection.cs
- DiscriminatorMap.cs
- SmtpAuthenticationManager.cs
- ScriptReferenceEventArgs.cs
- CellParaClient.cs
- WebPartConnectionsCancelVerb.cs
- TextEditorCopyPaste.cs
- DataTableMapping.cs
- EnumMemberAttribute.cs
- TargetControlTypeCache.cs
- NoneExcludedImageIndexConverter.cs
- Native.cs
- ConfigUtil.cs
- XmlSerializerVersionAttribute.cs
- RadioButton.cs
- XamlClipboardData.cs
- FileIOPermission.cs
- HttpListenerResponse.cs
- TextEditorContextMenu.cs
- DataSpaceManager.cs
- SyndicationLink.cs
- ScriptHandlerFactory.cs
- GenericArgumentsUpdater.cs
- TableProvider.cs
- TreeNodeCollection.cs
- EntityDataSourceMemberPath.cs
- PersistenceIOParticipant.cs
- XsdDateTime.cs
- BinaryExpression.cs
- XmlValueConverter.cs
- BoundColumn.cs
- DataComponentMethodGenerator.cs
- ParentQuery.cs
- SettingsPropertyWrongTypeException.cs
- FillErrorEventArgs.cs
- XmlUrlResolver.cs
- ApplyImportsAction.cs
- FileLevelControlBuilderAttribute.cs
- WebExceptionStatus.cs
- OutputCacheModule.cs
- MemoryRecordBuffer.cs
- EllipseGeometry.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- TraceHandlerErrorFormatter.cs
- ViewRendering.cs
- CellParagraph.cs
- ResXResourceSet.cs
- ListViewSortEventArgs.cs
- GlyphCache.cs
- remotingproxy.cs
- PropertyMapper.cs
- MarkupCompilePass2.cs
- DataGridPagerStyle.cs