cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
jjb8297
Level 6

Calling out to an external webservice

Greetings,

Is it possible from within a installscript function to make an external call to a webservice that would validate the licence key and based on the return value would continue with the installation or die gracefully.

The latter part I am not too concerned about because I already do something like this already, but I would like to move the licence key validation to something on our server, and from there do the validation.

I know that there is activation service available within installshield, but I have not been able to find any information on the cost of using this service, and therefore would like to save some costs.

If anyone has done this, any sample code would be appreciated. Thanks.
Labels (1)
0 Kudos
(5) Replies
jjb8297
Level 6

jjb8297 wrote:
Greetings,

Is it possible from within a installscript function to make an external call to a webservice that would validate the licence key and based on the return value would continue with the installation or die gracefully.

The latter part I am not too concerned about because I already do something like this already, but I would like to move the licence key validation to something on our server, and from there do the validation.

I know that there is activation service available within installshield, but I have not been able to find any information on the cost of using this service, and therefore would like to save some costs.

If anyone has done this, any sample code would be appreciated. Thanks.


Looks as though this is not possible to do from what I have read so far, which is a bummer. I would have thought it would have been possible to do, but I have not seen any replies and my search so far has turned up nothing that says this is possible to do.
0 Kudos
RobertDickau
Flexera Alumni

I'm not aware of anything built in; you might need to shell out to an external executable or DLL that calls into the web service.
0 Kudos
Christopher_Pai
Level 16

I distribute a .NET app so I already have a dependency on the framework.....

That said, I wrote a C# class that I made ComVisible(true) so I can instantiate it using CoCreateObjectDotNet(). The class consumes a webservice and allows me to invoke it's method.

In my scenario, a dialog has controls for the user to input a hostname and port number. This is used to set the URI before invoking the web service. The method returns a string which represents the site name of the server instance.

If the web service call fails, I just throw up a dialog saying it couldn't be confirmed. It's not fatal. If it works, I display the site name and ask yes/no.

In your scenario, I'd be concerned about servicing silent installs and offline installs. I'd also be concerned about people making transforms to bypass your webservice check. IMO, this type of requirement is better enforced in your application then in your install.

However, it can be done.
0 Kudos
jjb8297
Level 6

Christopher Painter wrote:
I distribute a .NET app so I already have a dependency on the framework.....

That said, I wrote a C# class that I made ComVisible(true) so I can instantiate it using CoCreateObjectDotNet(). The class consumes a webservice and allows me to invoke it's method.

In my scenario, a dialog has controls for the user to input a hostname and port number. This is used to set the URI before invoking the web service. The method returns a string which represents the site name of the server instance.

If the web service call fails, I just throw up a dialog saying it couldn't be confirmed. It's not fatal. If it works, I display the site name and ask yes/no.

In your scenario, I'd be concerned about servicing silent installs and offline installs. I'd also be concerned about people making transforms to bypass your webservice check. IMO, this type of requirement is better enforced in your application then in your install.

However, it can be done.


The dependency is that .net needs to be there, and with the app that we are have, we have need to have .net 1.1 installed on the user's machine before my app is installed.

Everything I have found so far points to the solution that you were talking about, and what Robert mentioned in an earlier post. Anyways, looks like the best approach is to do it within the application, and this point in time that would be a difficult animal to tackle considering I don't have the time to implement that into the application.

I know Installshield has the activation service, but I have not found anything regarding the cost of the service. Gotta love development when it throws challenges like this out at you. 😄
0 Kudos
Christopher_Pai
Level 16

If you roll your own, it's pretty easy to write a .NET Class that can be consumed by both the installer and the application. Just think about your use cases and you'll probably come up with methods like ReadKey(), SaveKey(), DeleteKey(), VerifyKey(), and so on. You can call these from both the install and the application so that you can do things like demo install that later gets promoted by the application.

Software Rights Management is a complicated area that still gets cracked so I pretty much stear clear of it as I'm not a crypto DRM expert. I do believe Robert has spent some time in this area though.
0 Kudos