Infralution Support Forum Index Infralution Support
Support groups for Infralution products
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Restricting end user to specific version of licenced assembl

 
Post new topic   Reply to topic    Infralution Support Forum Index -> Licensing Support
View previous topic :: View next topic  
Author Message
manlyboy



Joined: 24 Apr 2012
Posts: 30

PostPosted: Sun Jul 27, 2014 11:11 pm    Post subject: Restricting end user to specific version of licenced assembl Reply with quote

Hi,

I would like to implement a method that will restrict an end user to installing only a version of my product released during a 12 month period that is already defined within an Infralution licence. Something like:

If licence.valid = true and licence.dateofpurchase between <dop> and <dop>.Add12months and version number < <versionNumber> type stuff.

The method should be able to be called prior to running my actual installer so it would need to 'phone home' and check the licence validity and end users ability/permission to install the new version. It would also do it again during installation.

Sounds pretty simple until you want the end user to be able to download and install an older version that they are/were entitled to.

Complicate it a little more with allowing the end user to install a version that has had bugs fixed but was released after their valid licence period expired. Like they were entitled to v12.1, you have released v13, v14 etc and I fix a bug in v12.1 and release v12.2 .

Would it be easier to change to an end user buying a Version licence and then releasing a new Version every 12 months. Embed the version check code in the licence itself. That would then create a new complication in that some people would end up upset if a new version is released within a short time from original purchase.

It would be great if someone has already done this and says you can download the code from here but I would also appreciate and recommendations/comments in regards to end user reactions etc.
Back to top
View user's profile Send private message
Infralution



Joined: 28 Feb 2005
Posts: 5027

PostPosted: Sun Jul 27, 2014 11:46 pm    Post subject: Reply with quote

Depending on the installer you are using you should be able to create a Custom Action that does the necessary license check. If you want to prevent the user even downloading the update then you would need to implement some logic in the code that provides access to the downloads and have the user enter their license key.

I would include both the date of purchase and the version number purchased in the AuthenticationData. Your custom action can allow the user to install the license (if not installed) and check that the current release date and the version number are supported by the license.

It is certainly easier to just release a new version periodically which requires a paid upgrade. You can then just offer a free upgrade to customers that purchased within a set period of an upgrade eg a month.
_________________
Infralution Support
Back to top
View user's profile Send private message Visit poster's website
manlyboy



Joined: 24 Apr 2012
Posts: 30

PostPosted: Mon Jul 28, 2014 10:56 pm    Post subject: Reply with quote

Thanks for your comments.

I'll probably make the changes you suggest.
Back to top
View user's profile Send private message
CADbloke



Joined: 07 Jan 2016
Posts: 25
Location: Sydney

PostPosted: Thu Oct 05, 2017 10:09 am    Post subject: Reply with quote

Assumption: the user's license lets them perpetually use the latest version of my software they were entitled to when their support subscription expired, if they don't renew their support.

You can probably stop the user auto-updating if their support is expired but it can't really stop them downloading a newer version if the app doesn't check what version is actually running in comparison to what they were entitled to when their support expired. There's really no way to stop a user downloading a newer version by another means, perhaps even getting an update with a licensed version and applying it to expired versions.

You could manually set a "max version allowed" but that seems like an unmanageable and ultra-boring administrative overhead. Well, with a bit of luck some day it would be.

You could check the assembly build or release date as per http://www.infralution.com/phpBB2/viewtopic.php?t=2869&highlight=updates+expired

I searched for topics on this forum and the general Internets and came up with this idea ...

Using the "Automatic Versions" Visual Studio extension at https://marketplace.visualstudio.com/items?itemName=PrecisionInfinity.AutomaticVersions#overview
- automatically timestamp the AssemblyFileVersion number with the "Date" (yyddd) option. eg: "1.0.25.17278" - "25" is a build number, "17278" is the year "17" & day of the year "278". Related: October already?!?!!?
- check the license's support subscription expiry date field, converted to yyddd format against the AssemblyFileVersion field (see https://stackoverflow.com/q/909555/492) and you will know if the version they are running is outside their support agreement.

For really good info on the different version number fields see https://stackoverflow.com/a/65062/492 - it explains why I chose "AssemblyFileVersion"

What do you think? Seems legit?
Back to top
View user's profile Send private message Visit poster's website
Infralution



Joined: 28 Feb 2005
Posts: 5027

PostPosted: Thu Oct 05, 2017 10:32 pm    Post subject: Reply with quote

Thanks - some good information there
_________________
Infralution Support
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Infralution Support Forum Index -> Licensing Support All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group