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
- SerializationHelper.cs
- InputReportEventArgs.cs
- ConfigXmlText.cs
- TypeSystemHelpers.cs
- QilCloneVisitor.cs
- SmtpTransport.cs
- _NegotiateClient.cs
- SerializationHelper.cs
- TextLineResult.cs
- MsmqReceiveParameters.cs
- LogicalExpr.cs
- ToolStripItemImageRenderEventArgs.cs
- ErrorHandlingAcceptor.cs
- StrokeIntersection.cs
- HighlightVisual.cs
- GenericWebPart.cs
- TransformCollection.cs
- ColumnMap.cs
- BitStack.cs
- VerificationException.cs
- HashAlgorithm.cs
- Component.cs
- SiteMapPathDesigner.cs
- SqlBulkCopyColumnMapping.cs
- DataGridViewCellLinkedList.cs
- RuntimeConfigLKG.cs
- ConnectionManagementSection.cs
- WriteStateInfoBase.cs
- SqlCaseSimplifier.cs
- LocalFileSettingsProvider.cs
- RegularExpressionValidator.cs
- Label.cs
- LinkButton.cs
- InvalidOleVariantTypeException.cs
- rsa.cs
- ILGenerator.cs
- SamlConditions.cs
- Slider.cs
- KoreanLunisolarCalendar.cs
- FixedDocument.cs
- PerformanceCounterNameAttribute.cs
- X509PeerCertificateAuthenticationElement.cs
- NoneExcludedImageIndexConverter.cs
- AssemblyAttributesGoHere.cs
- DSACryptoServiceProvider.cs
- FileDialog_Vista_Interop.cs
- EventLogger.cs
- WhitespaceRuleLookup.cs
- WorkerRequest.cs
- XpsFilter.cs
- XmlImplementation.cs
- RichTextBoxContextMenu.cs
- Debug.cs
- ResolveCriteriaCD1.cs
- RSAPKCS1KeyExchangeFormatter.cs
- Privilege.cs
- EventLogPermission.cs
- TextElementEditingBehaviorAttribute.cs
- Accessors.cs
- SwitchAttribute.cs
- ConfigXmlElement.cs
- Subset.cs
- AsymmetricKeyExchangeFormatter.cs
- TypeConverterAttribute.cs
- AppDomainAttributes.cs
- SingleStorage.cs
- RuleInfoComparer.cs
- mansign.cs
- DataGridPagerStyle.cs
- CollectionBuilder.cs
- ContractReference.cs
- SocketException.cs
- Executor.cs
- SerializationInfoEnumerator.cs
- StdValidatorsAndConverters.cs
- InfoCardRSACryptoProvider.cs
- ViewSimplifier.cs
- PrePrepareMethodAttribute.cs
- IsolatedStorageFileStream.cs
- ScriptManager.cs
- DataRelationPropertyDescriptor.cs
- XmlCodeExporter.cs
- tibetanshape.cs
- MachineKeyConverter.cs
- DataRowComparer.cs
- Vector3D.cs
- _NestedSingleAsyncResult.cs
- URLIdentityPermission.cs
- AttachmentCollection.cs
- ElementsClipboardData.cs
- FirstMatchCodeGroup.cs
- MultiBinding.cs
- CapabilitiesState.cs
- ElementAction.cs
- EdmRelationshipRoleAttribute.cs
- Visual.cs
- SqlConnectionPoolGroupProviderInfo.cs
- NetCodeGroup.cs
- MobileFormsAuthentication.cs
- OleDbParameter.cs