Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CompMod / System / ComponentModel / LicFileLicenseProvider.cs / 1 / LicFileLicenseProvider.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.ComponentModel { using System; using System.ComponentModel.Design; using System.Diagnostics; using System.Globalization; using System.IO; using System.Reflection; using System.Runtime.Remoting; using System.Security.Permissions; ////// /// [HostProtection(SharedState = true)] public class LicFileLicenseProvider : LicenseProvider { ///Provides an implementation of a ///. The provider works in /// a similar fashion to Microsoft .NET Framework standard licensing module. /// /// protected virtual bool IsKeyValid(string key, Type type) { if (key != null) { return key.StartsWith(GetKey(type)); } return false; } ///Determines if the key retrieved by the ///method is valid /// for the specified type. /// /// Creates a key for the specified type. /// protected virtual string GetKey(Type type) { // This string should not be localized. // return string.Format(CultureInfo.InvariantCulture, "{0} is a licensed component.", type.FullName); } ////// /// public override License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions) { LicFileLicense lic = null; Debug.Assert(context != null, "No context provided!"); if (context != null) { if (context.UsageMode == LicenseUsageMode.Runtime) { string key = context.GetSavedLicenseKey(type, null); if (key != null && IsKeyValid(key, type)) { lic = new LicFileLicense(this, key); } } if (lic == null) { string modulePath = null; if (context != null) { ITypeResolutionService resolver = (ITypeResolutionService)context.GetService(typeof(ITypeResolutionService)); if (resolver != null) { modulePath = resolver.GetPathOfAssembly(type.Assembly.GetName()); } } if (modulePath == null) { modulePath = type.Module.FullyQualifiedName; } string moduleDir = Path.GetDirectoryName(modulePath); string licenseFile = moduleDir + "\\" + type.FullName + ".lic"; Debug.WriteLine("Looking for license in: " + licenseFile); if (File.Exists(licenseFile)) { Stream licStream = new FileStream(licenseFile, FileMode.Open, FileAccess.Read, FileShare.Read); StreamReader sr = new StreamReader(licStream); string s = sr.ReadLine(); sr.Close(); if (IsKeyValid(s, type)) { lic = new LicFileLicense(this, GetKey(type)); } } if (lic != null) { context.SetSavedLicenseKey(type, lic.LicenseKey); } } } return lic; } private class LicFileLicense : License { private LicFileLicenseProvider owner; private string key; public LicFileLicense(LicFileLicenseProvider owner, string key) { this.owner = owner; this.key = key; } public override string LicenseKey { get { return key; } } public override void Dispose() { } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //Gets a license for the instance of the component and determines if it is valid. ///// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.ComponentModel { using System; using System.ComponentModel.Design; using System.Diagnostics; using System.Globalization; using System.IO; using System.Reflection; using System.Runtime.Remoting; using System.Security.Permissions; ////// /// [HostProtection(SharedState = true)] public class LicFileLicenseProvider : LicenseProvider { ///Provides an implementation of a ///. The provider works in /// a similar fashion to Microsoft .NET Framework standard licensing module. /// /// protected virtual bool IsKeyValid(string key, Type type) { if (key != null) { return key.StartsWith(GetKey(type)); } return false; } ///Determines if the key retrieved by the ///method is valid /// for the specified type. /// /// Creates a key for the specified type. /// protected virtual string GetKey(Type type) { // This string should not be localized. // return string.Format(CultureInfo.InvariantCulture, "{0} is a licensed component.", type.FullName); } ////// /// public override License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions) { LicFileLicense lic = null; Debug.Assert(context != null, "No context provided!"); if (context != null) { if (context.UsageMode == LicenseUsageMode.Runtime) { string key = context.GetSavedLicenseKey(type, null); if (key != null && IsKeyValid(key, type)) { lic = new LicFileLicense(this, key); } } if (lic == null) { string modulePath = null; if (context != null) { ITypeResolutionService resolver = (ITypeResolutionService)context.GetService(typeof(ITypeResolutionService)); if (resolver != null) { modulePath = resolver.GetPathOfAssembly(type.Assembly.GetName()); } } if (modulePath == null) { modulePath = type.Module.FullyQualifiedName; } string moduleDir = Path.GetDirectoryName(modulePath); string licenseFile = moduleDir + "\\" + type.FullName + ".lic"; Debug.WriteLine("Looking for license in: " + licenseFile); if (File.Exists(licenseFile)) { Stream licStream = new FileStream(licenseFile, FileMode.Open, FileAccess.Read, FileShare.Read); StreamReader sr = new StreamReader(licStream); string s = sr.ReadLine(); sr.Close(); if (IsKeyValid(s, type)) { lic = new LicFileLicense(this, GetKey(type)); } } if (lic != null) { context.SetSavedLicenseKey(type, lic.LicenseKey); } } } return lic; } private class LicFileLicense : License { private LicFileLicenseProvider owner; private string key; public LicFileLicense(LicFileLicenseProvider owner, string key) { this.owner = owner; this.key = key; } public override string LicenseKey { get { return key; } } public override void Dispose() { } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.Gets a license for the instance of the component and determines if it is valid. ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlPreloadedResolver.cs
- SmiMetaDataProperty.cs
- SizeAnimationUsingKeyFrames.cs
- SystemKeyConverter.cs
- Configuration.cs
- WorkflowRequestContext.cs
- LicFileLicenseProvider.cs
- Point3DCollection.cs
- BufferModesCollection.cs
- PersonalizationState.cs
- HMACSHA256.cs
- KeyValueInternalCollection.cs
- StringCollection.cs
- ScopeElement.cs
- TextCompositionEventArgs.cs
- DeploymentSectionCache.cs
- TextBlock.cs
- ResolveMatchesApril2005.cs
- RadioButtonPopupAdapter.cs
- ProcessHost.cs
- WindowsRebar.cs
- MembershipPasswordException.cs
- Thickness.cs
- ReliableSession.cs
- TypeConverterHelper.cs
- OverrideMode.cs
- CompiledQueryCacheEntry.cs
- BooleanFacetDescriptionElement.cs
- TextTreeExtractElementUndoUnit.cs
- PropertyReferenceExtension.cs
- OleDbStruct.cs
- RbTree.cs
- SafeNativeMethods.cs
- TransactionScopeDesigner.cs
- ThicknessKeyFrameCollection.cs
- StringUtil.cs
- MultipartContentParser.cs
- FormsAuthenticationConfiguration.cs
- PathTooLongException.cs
- PointValueSerializer.cs
- HandlerFactoryWrapper.cs
- XmlSerializer.cs
- AppearanceEditorPart.cs
- PassportAuthenticationEventArgs.cs
- RelationshipEndMember.cs
- ScriptingProfileServiceSection.cs
- WarningException.cs
- ProcessHostConfigUtils.cs
- BaseServiceProvider.cs
- FileIOPermission.cs
- MouseGesture.cs
- InstalledFontCollection.cs
- ProjectionNode.cs
- FileEnumerator.cs
- XmlSchemaValidationException.cs
- AppModelKnownContentFactory.cs
- FixUpCollection.cs
- AliasedSlot.cs
- WebPartActionVerb.cs
- DbConnectionPoolGroupProviderInfo.cs
- RuntimeConfig.cs
- ApplicationServiceManager.cs
- ProfessionalColors.cs
- BinaryNode.cs
- DataControlFieldTypeEditor.cs
- ContextQuery.cs
- PnrpPermission.cs
- Int32AnimationUsingKeyFrames.cs
- Translator.cs
- SkewTransform.cs
- TextEditorCharacters.cs
- ColorConvertedBitmap.cs
- WebPartDescription.cs
- NamedPipeAppDomainProtocolHandler.cs
- ItemsPanelTemplate.cs
- ExpressionEditorAttribute.cs
- TemplateParser.cs
- Token.cs
- JavaScriptSerializer.cs
- FontEditor.cs
- UriTemplatePathSegment.cs
- XmlReader.cs
- DataSourceControlBuilder.cs
- WebBrowserEvent.cs
- TokenizerHelper.cs
- DbConnectionPoolGroup.cs
- TableLayoutColumnStyleCollection.cs
- PipelineModuleStepContainer.cs
- IndexingContentUnit.cs
- RemoteWebConfigurationHostStream.cs
- FileDataSourceCache.cs
- SectionRecord.cs
- ADConnectionHelper.cs
- BlockUIContainer.cs
- BinaryObjectInfo.cs
- BindToObject.cs
- CollectionBuilder.cs
- SamlEvidence.cs
- BreakRecordTable.cs
- TextServicesCompartmentEventSink.cs