Version history

Version 6.2.1 - December, 2011
  1. During a long time Manco .NET Licensing System supported 2 kinds of the protected storage: Windows Registry and Isolated Storage. No matter that it looks like enough for most .NET Framework scenarios there are environments and applications which require another approach. For example, Windows Azure Partial Trust role have not access to the Windows Registry or Isolated Storage. To make it possible to use our protection library in those scenarios we introduced ability to create custom protected storage which will better suit the needs of your application. You can find blog about custom protected storage here: http://mancosoftware.blogspot.com/2011/12/custom-protected-storage.html
  2. Added SubscriptionExpired property to the license state object.
  3. Automatic protected storage selection switched to use Isolated Storage first, and then Windows Registry.
  4. Added few enhancements into the creation of the wrapper class for encrypted binaries.
Version 6.2 - October, 2011
  1. The major changes in the version 6.2 have been made for the protection library (protection library for the .NET Compact Framework have not been changed):
    1. Code have been significantly changed to hide protection implementation in a better way.
    2. Public API changed to complicate potential hack of the system.
    3. Added functionality which perform internal integrity check.
    4. Added support for the .NET Framework Client Profile for both .NET Framework 3.5 and .NET Framework 4.0.
    5. Improved support for the Medium trust environment (time limited evaluation can be used, Unlock Key licensing schemas can be used, license activation can be used with custom system profile).
  2. Added functionality to upgrade license from one version to another (both License Manager and License Shop).
  3. Added ability to transfer license from one customer to another (both License Manager and License Shop).
  4. "New license type" toolbar button extended with dropdown which contains good-known predefined licensing schemas.
  5. Changed implementation of the licensing schema in the AWS. Validation of the domain name now don't use DNS, but get it from HTTP request. Pay attention, evaluation version of the AWS now accept requests made to the 'localhost' domain only.
Version 6.1.1 - June, 2011
  1. Collecting of the information about CPU (when hardware profile for license activation is created) has been optimized. Now it works 10 times faster.
  2. Added ability to access often used customer search requests from the dropdown button in the toolbar (Favorites) for both License Manager and License Shop.
  3. Added ability to create classes and its members as internal instead of public in the wrapper for encrypted assembly. It makes possible better obfuscation of the resulting code with Manco .NET Obfuscator. As result we have better level of the complex code protection (encryption + obfuscation). You can find blog about complex code protection here.
  4. Wrapper for encrypted binary (assembly DLL) extended with property which gets information about loaded assembly. Inclusion of this information is configurable from the "Encrypt file" window.
  5. Added support for the extension classes in the encrypted binaries.
  6. Fixed wrapper code which is generated for static members of the encrypted assembly.
Version 6.1 - March, 2011
  1. Added {d} Unlock Key format string. It includes Subscription Days and Override Id to the Unlock Key. The protection library check Override ID and set subscription expiration date rule using current date and subscription days set in the Unlock Key. In this case date when subscription expires will be calculated during license validation. This licensing schema provides best results in conjunction with license activation.
  2. Activation Web Service has been extended with ability to identify subscription state when activate and validate license online. If subscription expired license will not activated. During product activation subscription end date is included to the Activation Key and passed to the protection library for local validation.
  3. Added command line tool to encrypt files and source code (Encryptor). This tool is awailable for professional edition and high.
  4. Added support for relative pathes in the file encryption and source code encryption projects.
  5. Added {l} and {c} Unlock Key format strings to allow including of the not encrypted license type ID and customer ID to the Unlock Key.
  6. Allowed binding of more then 1 letter of every type to the version node.
  7. Allowed using of the "Product Edition" license rule from the non-Unlock Key based licenses.
  8. Implemented support of the custom user data editor in the "License Shop" with ability to load external DLLs.
  9. Added support of the C++ for "Create Loader and Wrapper" operation in "Encrypt File" window.
  10. Added ability to fill "Subscription Date", "Subscription Days" and "Override ID" fields in the "Generate Unlock Key Bundle" dialog.
  11. Added ability to preview e-Mail body using specified e-Mail configuration.
  12. Added ability to get raw e-Mail data for the specified sale. It is useful for debugging e-Mail XSLT.
  13. Added few UI extensions to the License Manager.
  14. Added few UI extensions to the License Shop.
  15. Few bugs have been fixed.
Version 6.0.1 - January, 2011
  1. In this version we added new part of the Manco .NET Licensing System. We call it “License Shop”. This is web-based (Silverlight) tools for complete customer and license management. Using it you can issue licenses and keys outside your office just using any Silverlight-ready PC. You even can setup a bunch of sale persons around the world who will do it for you 24x7 just using single “License Shop” license. Just manage your sale persons to use “License Shop” on 1 in a time basis. We don’t allow concurrent using of the single license. But “License Shop” is not bound to the particular PC (it is bound to the AWS installation), so you can use single license anytime anywhere on 1 license - 1 concurrent connection basis. Note: this version of the License Shop does not support custom user data edit controls.
  2. Added new web-methods to the Activation Web Service which provides functionality necessary for the "License Shop".
  3. Few bugs have been fixed.
Version 6.0 - October, 2010
  1. The major change in the version 6.0 concern the method is used to access licensing data. This version use single data access point - WCF Data Service (either hosted internally with License Manager or hosted on IIS). This approach simplifies creation of the distributed development and testing environment and makes data access more clear for 3d party applications.
  2. According to the Microsoft database roadmap we will not support MS Access database anymore. In the version 6.0 we support MS SQL (Full or Express). We are planning to add support for MySQL and Oracle in the future.
  3. Database structure has been changed to allow customer search using any licensing rule and simplify using of the licensing data from 3d party applications.
  4. Added standalone Database Manager application which allows install/upgrade MS SQL database and copy data between databases.
  5. UI of the License Manager has been redesigned.
  6. Added ability to edit and store settings of the ILicenseKeyProvider implementation. So created code always will be the same and need not to be changed. For example, if BypassExpirationCheck property is marked to return true, then it always will return true in the generated code.
  7. Added ability to save customer search conditions for further use.
  8. Added ability to use license custom values as licensing rules (you can use them to validate license).
  9. Added DisallowedInEdition attribute. This way you can specify editions where some functionality is disallowed.
  10. Added support for re-sellers (or salespersons in the big company) - sale record now store name of the user who created it (when License Manager and/or AWS uses external Data Service hosted on IIS). You can use this information in the customer search condition.
  11. Added delayed sales creation on AWS. It allows set the license parameters, features and values and from generate bundle of the unlock keys. Then print that keys on a labels and affix it to the CD before shipping. Then when the customer activates the application all the other data needed for the sale could be uploaded to the Activation Web Service and posted to the License Manager Database.
Version 5.0 - January, 2010
  1. Multiple license activations. Now same Unlock Key or license file can be activated on multiple PC. You can control number of the activations allowed.
  2. Added ability to include BIOS information to the PC hardware profile.
  3. Allowed synchronization of the sale records with AWS right from the "Sales" sub-tab on Product tab.
  4. CreatePurchase method of the AWS is extended with ability to create number of sales at the moment.
  5. License Manager now able to generate ILicenseKeyProvider implementation in C++.
  6. Extended support for Windows Mobile (Windows Phone) projects in the License Manager and Protected Storage Cleaner. The License Manager now can create ILicenseKeyProvider implementation for .NET Compact Framework as well. The License Manager and Protected Storage Cleaner now able to clear protected storage in cradled Windows Mobile (Windows Phone) device (real one and emulator).
  7. "Send e-Mail" functionality on "Products" tab of the License Manager is extended with ability to send e-Mail which includes list of the <Purchase> elements. You can mark sale records which will be passed to the e-Mail processor within the "Sales" list view now.
  8. "Send e-Mail" functionality on "Customers" tab of the License Manager is extended with ability to send e-Mail which includes list of the <Purchase> elements. You can mark customers and sale records which will be passed to the e-Mail processor right in the tree view now.
  9. Preparation of the source code for encryption have been moved to the separate application domain. So all referenced assemblies are released when encryption process is completed.
  10. Added "Save Settings" and "Load Settings" buttons to the "Prepare Source Code for Encryption" window. It allows save and load settings made for code preparation.
  11. Source code encryption and encrypted code loader now support different versions of the C# and VB.NET. Added ability to specify language version in the prepare source window.
  12. The DaysLeft and ExpiryDate properties have been changed to show 0 and today when license expired because of switching system date back.
  13. Added new rule PushForwardMode. Enumerator with following values: Off (the same as "TurnOffPushForward" rule), Expire (current mode), Continue (if customer switch date after last run then evaluation can be continued). For the "Expired" status of license we are able to detect what is a reason: switching date back or expiration rule.
    1. Added new ExpirationReason enumeration.
    2. Added new ExpirationReason property to the license object.
    3. Added new PushForwardMode enumerator.
    4. Added new PushForwardMode property to the license object.
  14. Unlock key generation routines have been changed to check length of the encrypted part of the key and throw exception if it is more than 127 characters.
  15. Added ability to block activation process on AWS for specific license type.
  16. Added ability to block activation process on AWS totally.
  17. AWS now throw typed exceptions.
  18. XML logger (formatter and publisher) for AWS.
  19. Added ability to search customer using different criteria from the Sales tab conditions. Added button "Search" at the left of the left of the "By Customer ID" textbox. It shows search customer form and fill text box with customer id in success.
  20. RSA performance issue have been addressed.
  21. Some bugs have been fixed.
Version 4.1.2 - October, 2009
  1. InvalidValidator property of the license object don't throw exception when license is valid now. It returns null value.
  2. Fixed code which generates encrypted wrapers for the setters of properties and functions when enumeration defined in the encrypted assembly should be passed as parameter.
  3. The InvalidValidator class have been changed. The RuleName property have been replaced with Rule property. This property have type LicenseRules instead of string. LicenseRules is the enumerator which list license rules which can be validated. It is a braking change.
  4. Fixed bug in customer search routine.
Version 4.1.1 - August, 2009
  1. Added new rule: "Disallow Virtual Environment". It allows stop execution of the protected application in the virtual environment. Virtual PC, Virtual Server, VMWare Workstation are supported currently.
  2. Added ability to add custom information to the PC profile, or even completely replace it with your own value. To do it you have to use CustomProfileMode and CustomProfile properties of the license object. The CustomProfileMode property sets value which indicates how the custom profile will be combined with system information. It can have following values:
    1. None – indicates that custom profile will not be used.
    2. Combine – indicates that custom profile will be added to the hardware information.
    3. Override – indicates that custom profile will override hardware information.
    The CustomProfile property sets value which will be used as custom profile.
  3. Some bugs have been fixed.
Version 4.1 - June, 2009
  1. Activation Web Service now able to check availability of the Unlock Key or license in the database without activation. Added new web-method LicenseExists.
  2. It is possible now to create bundle of the Unlock Keys (with sale records) for selected customer.
  3. Created separate desktop application that clear protected storage on the target (test) PC using information from the License Manager database. This application is able to clear Machine scope isolated storage and operate on behalf of another user account.
  4. Simplified product edition implementation. Unlock Key gets new formats {EM:N} and {eM:N} that will get N characters of the product edition starting from the position M and put it to the Unlock Key in encrypted {E} or plain {e} form. New rule "ProductEdition" have been added. This rule allows to specify product edition. New property "ProductEdition" is added to the license object. It returns "ProductEdtion" value specified in the License Manager when Unlock Key have been created. Created 2 new ways to verify feature availability in the product edition:
    1. New attribute AllowedInEdtion is added. It can be specified for methods in your application. This attribute sets list of the editions where this method is available. License object provides new property IsMethodAllowed which checks whether the product edition is set in the ProductEdition property is in the list from AllowedInEdtion attribute.
    2. New attribute FeatureId is added. It can be specified for methods in your application. New method SetFeatureList is added to the license object. This method sets list of the features are available for current product edition. The IsMethodAllowed checks whether the FeatureId is set for the method is available for the current edition of product.
  5. The time limited Unlock Key. New Unlock Key formats {D} allows including of the subscription expiration date to the Unlock Key. This date is calculated using value of the "Subscription Date" rule at the moment when Unlock Key is created. The "Unlock Key" validation routine extracts this date and validate it.
  6. Fixed behavior of the AWS when empty Unlock Key is passed for activation.
  7. Fixed problem when License Manager do not detect changes made in license XML when edit sale record.
  8. UserDataControl have been extended with ShowInWindow property. It indicates whether the control will be embedded to the License Manager window, or button with text specified in the new ButtonText property will be shown. Click on this button shows separate window with custom control to edit user data.
  9. Added new DeactivateProduct(string lsProductID) method to the Activation Web Service. It allow deactivate license by given Product ID. Added "ForceActivation()" method which set license state to the "calling of the AWS is strong required" mode. This state helps detect whether the "Activate" button must be pressed in the evaluation form. Do not allow simple put the OLD Activation Key and click OK - re-activation REQUIRED.
  10. Add new licensing rule "AWSAllowDeactivation". This rule manage how the AWS process deactivation request. AWS checks whether this rule is included to the license type when customer call "Deactivate" method. If it is so, then Deactivate method works.
  11. Fixed routines which read top N customers from database.
  12. License Manager now able to clear Machine scoped isolated storage and clear protected storage on behalf of different user account.
  13. Changed structure and encryption model of the protection library.
  14. Added search condition by "ProductEdition". Database Purchase table extended with new ProductEdition column.
  15. UserDataControl base class is extended with BitArrayToString, BitArrayToBytes, and StringToBitArray methods. It helps to implement custom control which edit flexible application feature list.
  16. Automatic database upgrade from version 3.2 to version 4.1 is available now in License Manager.
  17. Functionality of the FLWS is extended with ability to serve several customers.
  18. Added new way to get device ID (system info) to the protection library for .NET Compact Framework.
Version 4.0 - January, 2009
  1. The Floating License Web Service (FLWS) is the web service that allows centralized license distribution and concurrent using of licenses. It can be installed into the client network or somewhere in the Internet.
  2. Added new licensing rules which control behavior of the Floating License Web Service.
  3. New RequestFloatingLicense method has been added to the License class. It requests license from the Floating License Web Service.
  4. New ClearFLWSRuns method has been added to the License class. It clears number of runs counted by FLWS for particular client's IP address.
  5. New RegisterFloatingLicense method has been added to the License class. It register floating license on FLWS.
  6. New RemoveFloatingLicense method has been added to the License class. It removes floating license from FLWS.
  7. New ActivateFloatingLicense method has been added to the License class. It activates floating license against FLWS hardware.
  8. New EnumerateCustomValues method has been added to the License class. This method enumerates all custom values using condition given as XPath expression on custom value name and/or value.
  9. New RemoveCustomValue method has been added to the License class. It removes custom value from license.
  10. It is possible now to create own user control to make editing of the complex User Data in License Manager more comfortable.
  11. Added new "Turn Off Push Forward" licensing rule. It indicates that "Push Forward" technology shouldn't be used with this license type. This rule forces the protection library to bypass validation of the date when protected assembly has been used.
  12. Now it is possible to reload license file without restarting of the protected application. New LoadFromStream method has been added to the License class. It allows reload licensing information from the given stream without recreation of the license object.
  13. ILicenseKeyProvider extended with DoLoadLicense property which indicates whether license should be loaded from the default location during creation of the license object.
  14. ExpiryDate property has been changed to return nullable DateTime.
  15. SubscriptionDate property changed to return nullable DateTime.
  16. Now it is possible to specify what standard control should be used to edit User Data in License Manager. It can be done by setting special type of the default value for UserData.
  17. New functionality which simplifies automatic online license validation has been added. License object can be configured to validate license online in a specified time period (every 7 days, for example). In case when validation is unsuccessful it switch license to evaluation state or throw exception.
  18. License Manager can utilize HTTPS to communicate with AWS.
  19. New SwitchToEvaluation method has been added to the License class. It allows convert activated license to the evaluation state with specified expiration rule.
Version 3.3 - June, 2008
  1. Automatic creation of the Product and Version nodes using information from the assembly to be protected now is possible.
  2. Default values can be specified for every rule in license type. These values are copied to the license attributes when new sale is created.
  3. Verification of the Domain and IP Address rules have been modified to allow using of these licensing rules with various .NET applications (not with ASP.NET applications only).
  4. Customer ID and License Type ID can be now encrypted to and obtained from the Unlock Key.
  5. New license rule "Subscription Days" now is available. It sets number of days for subscription license.
  6. Ability to read not encrypted hardware profile has been added to the license object.
  7. New web method has been added to the AWS. It allows obtaining of the encrypted customer information by license.ProductID.
  8. Start and end dates to search on the customer search tab.
  9. Copy-paste for e-Mail configurations.
  10. Customers on the "Sales" tab can be filtered using Unlock Key now.
  11. It is possible to get full name and e-Mail address of the customer from the "Sales" tab.
  12. "Copy to clipboard" button for activation key is added on the "Sales" tab.
  13. It is possible to change log level for License Manager from the "Settings" tab now.
  14. "Add Sale for this customer" context menu have been added to the customer element at the "Sales" tab.
Version 3.2 - January, 2008
  1. The new UI is developed.
  2. The Activation Web Service now allows creating sales in automated mode. It makes possible to communicate with e-Commerce services, produce Unlock Keys and/or license files on demand and send it to customers automatically.
  3. License validation now allowed in design mode.
  4. Now it is possible to create version independent license file and/or Unlock Key.
  5. Bidirectional synchronization of the local database and AWS database.
  6. Attachments in the e-Mail configuration. You can configure e-Mails to include arbitrary attachments.
  7. Activation Web Service can be used as data source for the License Manager.
  8. Many other improvements and enhancements.
Version 3.1 - September, 2007
  1. Configurable Hardware Tolerance Level of the machine profile for Activation Key.
  2. Activation Web Service is extended with additional type of activation - with automatic insertion of the Activation Key to the application (without e-Mail). New ActivateProductGetKey web method have been added.
  3. “Push Forward” technology for expirations.
  4. Now it is possible to set Unlock Key Format.
  5. Many other improvements and enhancements.
Version 3.0 - April, 2007
  1. Encrypt and load encrypted assemblies.
  2. Configurable protected licensing storage.
  3. Configurable cryptographic provider.
  4. Include some user specific data to the Unlock Key.
  5. Many other improvements and enhancements.
Version 2.9 - January, 2007
  1. Protection library for .NET Compact Framework 2.0 is now available.
  2. Process auto response forms.
  3. Added ability to synchronize data with Activation Web Service.
  4. Many other improvements and enhancements.
Version 2.7 - November, 2006

Version 2.5 - June, 2006

The Activation Web Service is created. The licensing schema with Unlock Key with following activation is implemented.

Version 2.3 - January, 2006

Version 2.0 - September, 2005

The new UI is developed. Data is now stored in database, but only the MS Access is supported.

Version 1.7 - June, 2005

Version 1.6 - January, 2005

Version 1.5 - October, 2004

Version 1.1 - June, 2004

Version 1.0 - March, 2004

Only the very basic functionality is implemented. There is no database in use.

Copyright © 2004 - 2011 Manco Software.