What version of Protection PLUS is best for protecting an ASP.NET web application?
Posted by Dan H, Last modified by Tanner O on 03 June 2018 08:13 PM

We recommend Protection PLUS 5 SDK .NET Edition.  The PLUSManaged library included with this edition is far better for licensing ASP.NET applications than Protection PLUS 4 SDK's older SKCLNET component, while Instant Protection PLUS 3 was designed for desktop applications.   Protection PLUS 5 SDK .NET Edition includes ASP.NET samples that will help you get a jump-start on things.  The samples have fairly extensive comments, which thoroughly document implementation even further than our manual. 

We have a blog post on protecting web applications that may be helpful:


In addition, here are a few pointers when planning the ASP.NET implementation: 

  1. Define your licensing requirements before starting your implementation.  Protection PLUS is designed for licensing software, and consequently, is designed for activating the ASP.NET application to run in a particular server/environment.  In other words, it does not lend well to scenarios like requiring each individual user of your ASP.NET application to activate. 
  2. Keep in mind that this is a potentially high-concurrency environment.  Be careful about when and where you validate the license.  If there is some kind of mission-critical function that is potentially used under heavy concurrency, consider omitting license validation in it, or designing it to use validation results that are cached in memory. 
  3. Related to the point above, think carefully about where you store the primary license file, and how frequently you write to it.  Since it is a potentially highly concurrent environment, writing to the license file to frequently can cause problems with hangs and locks.  If for some reason, you decide you do need to write to it frequently, consider storing the license file in your application's database.  This point is the primary reason we only ship an ASP.NET sample that uses a read-only license and not one that uses a writable one.