none
C# application for time based licensing

    Question

  • Hello Everyone,

    We are developing some content based applications in C#, this would be licensed to clients for a specified duration of time and the code should be robust enough to track time. Since majority of our customers would not be accessible to internet it would be impossible for us to track time or handle situations where clients might change system time.

    Need opinion on how to proceed on this.

    Regards

    Suresh Sharma

    Friday, May 11, 2012 3:52 PM

Answers

  • Something from her might help:

    http://social.msdn.microsoft.com/forums/en-us/vbgeneral/thread/014BC8C8-ED03-4538-A5CC-3D941676FD68

    The question has been asked on numerous occasions so it is worth doing a search on both C# and VB forums.


    Regards David R
    ---------------------------------------------------------------
    The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones.
    Object-oriented programming offers a sustainable way to write spaghetti code. - Paul Graham.
    Every program eventually becomes rococo, and then rubble. - Alan Perlis
    The only valid measurement of code quality: WTFs/minute.

    Friday, May 11, 2012 6:40 PM
  • You can not track time properly without having internet access at least once in a while. The only other solution is to literally hack into your clients machine and prevent time changes by some sort of background service which will get you into all sort of trouble, not to mention it's most probably illegal.

    Best licensing model is the one that checks for internet access at least once a month or every couple of months. If you have to do it with no internet access at all -I don't know what type of stone age architecture your clients might run, if it's about security have they heard of VPN, firewalls, and stuff like that?!!-, then your best choice is to count the number of times your application has run and stored that in an encrypted file in the filesystem. This way you're completely isolated from a reliable source of time tracking, and still can limit the use to your software.


    http://nader.elshehabi.com

    Saturday, May 12, 2012 3:30 PM
  • You can use RSA license protection, this project is a good reference.

    Of course, using NTP time would be the best choice (less work to do) but this obliges the client to have internet connection. However, If the client doesn't have internet connection, To handle the case when the client changes his machine time, you can handle the system event TimeChanged. You can also memorize the time when the application is closed. If the time when the application is closed is lower than the time when the application starts that means that the client changed the machine time.


    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    Saturday, May 12, 2012 6:04 PM

All replies

  • Something from her might help:

    http://social.msdn.microsoft.com/forums/en-us/vbgeneral/thread/014BC8C8-ED03-4538-A5CC-3D941676FD68

    The question has been asked on numerous occasions so it is worth doing a search on both C# and VB forums.


    Regards David R
    ---------------------------------------------------------------
    The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones.
    Object-oriented programming offers a sustainable way to write spaghetti code. - Paul Graham.
    Every program eventually becomes rococo, and then rubble. - Alan Perlis
    The only valid measurement of code quality: WTFs/minute.

    Friday, May 11, 2012 6:40 PM
  • You can not track time properly without having internet access at least once in a while. The only other solution is to literally hack into your clients machine and prevent time changes by some sort of background service which will get you into all sort of trouble, not to mention it's most probably illegal.

    Best licensing model is the one that checks for internet access at least once a month or every couple of months. If you have to do it with no internet access at all -I don't know what type of stone age architecture your clients might run, if it's about security have they heard of VPN, firewalls, and stuff like that?!!-, then your best choice is to count the number of times your application has run and stored that in an encrypted file in the filesystem. This way you're completely isolated from a reliable source of time tracking, and still can limit the use to your software.


    http://nader.elshehabi.com

    Saturday, May 12, 2012 3:30 PM
  • You can use RSA license protection, this project is a good reference.

    Of course, using NTP time would be the best choice (less work to do) but this obliges the client to have internet connection. However, If the client doesn't have internet connection, To handle the case when the client changes his machine time, you can handle the system event TimeChanged. You can also memorize the time when the application is closed. If the time when the application is closed is lower than the time when the application starts that means that the client changed the machine time.


    My blog

    Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.

    Saturday, May 12, 2012 6:04 PM