Most of what I wrote above can be ignored because I found answers in the following thread:
https://wyday.com/forum/t/1775/settings-trial-days-to-zero-rental-license/
However I'm still curious about what I said in the last paragraph above.
My licenses are valid for fixed periods of time. When the time elapses, the customer has to pay again to renew.
I'm trying to figure out the best way to use LimeLM with this licensing model.
One option seems to be to put a date in a custom license field and handle all the work myself. If I do that, I assume I have to verify the current date on a server (presumably my own) to prevent the customer from changing the system time on the local machine. Is this about right? If I go this route, does LimeLM give me any help beyond the custom license field?
Another option might be to pretend my paid editions are free trials, and use LimeLM's free trial stuff. Is that feasible?
Maybe I'm confused or not seeing everything, but I don't understand why you folks have gone to the trouble of implementing time-limited free trials without using that code in a slightly more general way to allow time-limited licenses in general.
Most of what I wrote above can be ignored because I found answers in the following thread:
https://wyday.com/forum/t/1775/settings-trial-days-to-zero-rental-license/
However I'm still curious about what I said in the last paragraph above.
One option seems to be to put a date in a custom license field and handle all the work myself. If I do that, I assume I have to verify the current date on a server (presumably my own) to prevent the customer from changing the system time on the local machine. Is this about right? If I go this route, does LimeLM give me any help beyond the custom license field?
Yes, that's the way to do it. Use the IsDateValid() function to check if the date has expired and do some minimal client-side date-manipulation fraud detection.
To be absolutely sure that the time hasn't been fooled with then you have to talk to your server (or some server you trust) every time you start your app.
Another option might be to pretend my paid editions are free trials, and use LimeLM's free trial stuff. Is that feasible?
No, because the trial system (which is completely separate from the licensing system) is not hardware-locked. Meaning trials can be copied easily.
Maybe I'm confused or not seeing everything, but I don't understand why you folks have gone to the trouble of implementing time-limited free trials without using that code in a slightly more general way to allow time-limited licenses in general.
The custom license fields, the GetFeatureValue() and the IsDateValid() functions all provide ways of limiting licenses based on dates. And they do it in a general way. Is there something else that would help?
Wyatt wrote, "The custom license fields, the GetFeatureValue() and the IsDateValid() functions all provide ways of limiting licenses based on dates. And they do it in a general way. Is there something else that would help?"
Yes, you could do the work for me and make it simple. 🙂
Here's what I was expecting.
First of all, I thought you would allow me to define several kinds of licenses for a given product version.
I would create a license on the product version page and give it a name. Let's call it "Annual license." I would then go to a page that doesn't exist on your site where I would define the characteristics of this license.
This license page would offer radio buttons to choose the type of license. I would click a radio button for "time-limited." This would enable previously grayed-out fields for "length of time." I would enter, say, one year.
Later, when I create a key, I would have to specify which license it embodies. From a drop down box I would pick "Annual license."
That's the end of my work.
Later, when I call IsGenuineEx, your code not mine worries about whether the license period has expired. If it has expired, you return a value that tells me so.
My answer above is unnecessarily complicated because I presented two separate ideas, multiple licenses and time-limited licenses.
If it helps, ignore the multiple idea.
Also the time period for a new license (not a renewal) could start when the key gets activated for the first time. Sort of life renting a movie from Amazon for 48 hours but the clock starts running only when you begin to watch.
This license page would offer radio buttons to choose the type of license. I would click a radio button for "time-limited." This would enable previously grayed-out fields for "length of time." I would enter, say, one year.
Later, when I create a key, I would have to specify which license it embodies. From a drop down box I would pick "Annual license."
That's the end of my work.
This is possible with custom license features. We don't currently have "dropdown" and "radio button" types, but they will be added in the future. In the meantime you can either use the "String" or "Integer" types.
I know that typing a string or integer is more of a hassle than simply selecting from a dropdown. We are planning on adding these types in the near future.
Also the time period for a new license (not a renewal) could start when the key gets activated for the first time. Sort of life renting a movie from Amazon for 48 hours but the clock starts running only when you begin to watch.
That's an interesting idea. We'll think about it.