Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

Our startup is creating a product for the SharePoint platform.

I'm wondering, what are some ideas for designing and implementing a licensing scheme for solutions that plug into SharePoint? How can they be enforced? I'm realistic enough to understand that most schemes can probably be hacked to some degree, but trust that most enterprises would rather just pay up than resort to hackery so it doesn't have to be a "bulletproof" scheme, just something more than "Scout's Honor".

I'll give an example: in our case, as a part of the provisioning process, our product creates groups of collaborators. One thought was that we could create a licensing scheme that limited the size of the groups based on which license was purchased. Such a license would be deployed as a .dll in a .wsp and loaded the value of the size could then be read at runtime by dynamically loading the license .dll.

But this is just one idea. Are there ways to effectively and unobtrusively enforce software license on a per-server or per-user basis in SharePoint?

share|improve this question

1 Answer 1

The best thing I've seen for license enforcement has always been the key pair, as with Microsoft. Send in Serial Number, get a key and you're good. This way only half the validation is discoverable. The trick with SharePoint would be storage of the second key, you have few options with SharePoint that are easy to use and you could get access to consistently.

My thinking you use config files, then give walkthroughs to the end users if the key doesn't store right on how to add permissions, etc.

Registry storage may be doable but may give more permission headaches and SharePoint storage is inconsistent and could vary (Which Site Collection?).

DB Storage might work but would require setup just to store a key.

You could also just grab the key periodically via calling a web service on your end, however that requires an Internet connection where I happen to know many a SharePoint farm is Internet blocked.

share|improve this answer
The license key isn't really an issue using pretty standard public/private key pair. What I'm wondering is if there is a scheme to manage actual software enforcement of CALs that has been successfully used to license software. I'm wary of calling out to a web service as it can be an inconvenience if the web server is down (similar to the inconvenience when a DRM license server goes down) and some companies might not think too fondly of a random web service call going out from their web services which may have proprietary/sensitive data. –  Charles Chen May 14 '11 at 21:26
Well you could design your key pair to embed the number of CAL's as part of the key structure, then enforce throughout your program. Then to track per server or per user, track the movement of users keeping a table somewhere in memory of the users logged in. For servers you'd have to examine the farm somehow and determine server count, which I'm not sure can be done programatically. There are perils with both however so I'd think you were back to the honor system. Just think of it this way, I don't think any of the major SharePoint third party vendors attempts User or Server verification. –  tekiegreg May 15 '11 at 0:40
Re: "I don't think any of the major SharePoint third party vendors attempts User or Server verification". Erm - I think pretty much every one actually does, quite a few license per site collection too. –  Ryan May 16 '11 at 14:59
@Ryan I don't think many of them are hard enforced, much like Microsoft's user CALs, which are only enforced -- as I understand it -- for Small Business Server and Remote Desktop. Most CALs are "soft" in the sense that they can be legally enforced, but they are not strictly software enforced: Reference –  Charles Chen May 18 '11 at 16:33

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.