I kind of like InstallShield Express - it's cheap and gets the job done. It
creates a "One click" install that you can put on the web and then control
the password on your own. It creates IIS virtual directories and
everything. However, that doesn't stop one user from distributing the
password, but it's better than nothing. You may be able to do something
more advanced with the scripting that accompanies it.
You could also build a web service on your end and let your deployed
application "call home" periodically. This would be especially great for a
subscription based model. I like this best because if you notice two
different server IP's requesting the same license code (assuming static ip's
here), then you can contact the original purchaser, give them a new code,
and wack the old one, thus killing the pirate. There is a possibility that
they could deploy multiple instances behind a firewall, but for that you
could maybe get the servers mac address... or something that identifies it.
If you are providing a EULA you should put something in about that...
--
Jerry Boone
Analytical Technologies, Inc.
http://www.antech.biz
Secure Hosting and Development Solutions for ASP, ASP.NET, SQL Server, and
Access