Sorry i didn't notice the reply's already given and wrote my reply below! :)Hi Chris, I have the book Visual C#.Net 2003 (SAMS, by Kevin Hoffman and Lonny Kruger, ISBN 0672-32676-0) and in chapter 37 the process of licencing and intellectual property is described. "Licensing is the means by which valid users of your software distinquish themselves from usere who do not have a permission(licence) to use your software". To download the sample code (All code from the samples in this book) go to http://www.samspublishing.com/title/0672326760?redir=1# and the bottom of the page you see a red code-zip that you can download, the sample code for the licenced controls is in map 37. Because you dont have the text yet on paper i will share with you the text in the book (I hope this is allowed but i advice you to buy this book, its great and has a lot to say about security issues, an other book on this topic is .Net Framework Security ISBN 0-672-32184-X) Creating a License Creating a licence is fairly simple. the first step is to create a class taht inherits from the system.Componentmodel.Licence class and provide the appropiate overrides. If you want to maintain additional information about the licence, such as number of processors alowed and so on, you could make the data properties of the licence and extract it from whatever key you use. Listing 37.1 shows the very simple AcmeStockLicence: Listing 37.1 using System; using System.ComponentModel; using System.Collections; using System.Collections.Specialized; using System.IO; using System.Diagnostics; namespace StockLibrary { /// /// Summary description for AcmeStockLicense. /// public class AcmeStockLicense : License { private string licenseKey = string.Empty; public AcmeStockLicense(string key) { licenseKey = key; } public override void Dispose() { } public override string LicenseKey { get { return licenseKey; } } } } As you can see, there is nothing all that exciting about this class. It is a simple property container for the licence key that implements the right overrides from the abstract licence class. If complex logic of the licence itself were needed for encryption licence keys, it could be added to this class. Creating a Licence Provider As mentioned earlier the LicenceProvider class is just a vehicle for the Common Language Runtime's LicenseManager class to obtain a licence for a given class. Each time