tags:

views:

76

answers:

1

Hi,

We have a successful desktop - Client server based .net Product (vb.net/Sql server). We have it wrapped with licensing activation etc to protect it from unauthorised installations.

Now we are planning to work on a asp.net based enterprise product. We'll use the required coding practices of light UI, dlls for code-behind etc. But it might be simple for someone to just copy and set up the web server to run it in another machine. (Since there is no one single exe as startup)

What are the good options to protect in such a case? Licensing using db, any 3rd party components , any best practices ?

Thanks in advance

Anand

+1  A: 

Put all of your business logic into another assembly (project) within your solution. You can then add License-checking code to the initialization functions in your Business DLLs. The license-checking code will run each time your business DLLs are initialized.

You can use any licensing scheme you want (file checks, database calls, 3rd party components) in the DLL's initialization function. And since your web application is useless without your business DLLs, the application will refuse to run if the checks fail.

The only problem with this approach is that it's not 100% fool proof. Someone could use reflector on your DLLs, remove the licensing code, and recompile them. In that case you will need to look at obfuscating your DLLs before releasing them.

Jeff Robinson