0

I am looking for some architectural ideas for a scenario as below:

Environment: I have a service (wcf hosted in windows service) that does several functionalities. I provide client libraries (.NET windows dlls) which provides API's to access this service and also has other client functionalities.

Problem: For business reasons, I need to be looking for a mechanism for the service to only allow a specific version of client to access certain functionalities (access certain API's) and not to allow access for other versions of the client. Basically, something like, I am looking to the educate the service to trust all requests from 1 specific client version and just support basic operations via any other version of the client.

Please note: There cannot be any user permissioning or user secuirty context added to this, since I only want to allow or deny access for specific versions of software client and nothing really to do with users.

For example : From version X client, I need to allow all READ and SAVE capablities. But from any other versions, I can only allow all READ but not allow any SAVE.

Possible Solution : So far, I have thought of adding a config, with version number, to the client and passing it to all service requests from the client. The service can get to know the version to fully trust from DB or a web config. In the service, I can intercept the channel and see if I have this specific string from the client message and hence support\deny access to specific API's.

Any other elegant soultions to this scenario or if any one has done anything relevant, that will also be helpful.

Thanks

Everything Matters
  • 2,672
  • 4
  • 25
  • 42

1 Answers1

0

You could provide a client with a hash that when provided alongside a request to the service would grant the client access based upon the hash the client provided?

Like you have alluded to, there are many ways to skin a cat.

May I ask why you want to have your service/client system operating in this manner?

Mr. Mr.
  • 4,257
  • 3
  • 27
  • 42