We've considered it, but it hasn't been a high priority. It's typically easier to set the product key email with the person who purchased the software and the lookup because vastly easier.
As recommended by Wyatt, I use extra activation data to capture a unique client ID for each activation, typically of the form username@hostname, though it can be changed by the user during activation if desired.
One thing I've found is that it doesn't seem to be possible to search for a license key based on that field, though, and often that's what a user who has lost their license key is able to remember (or at least derive from their machine). Am I perhaps missing something? If not, is this something that can be added easily? It seems like a very useful feature to have.
We've considered it, but it hasn't been a high priority. It's typically easier to set the product key email with the person who purchased the software and the lookup because vastly easier.
Saying something like “It's typically easier to …” without actually understanding the specific use case is not at all helpful. A large proportion of my product's licenses are purchased by either third-party resellers/distributors or IT purchasing groups in large corporations where the purchaser has no discernable relationship with the actual end user. As a result, there is a one-to-many relationship between purchaser email address and license key, emphasis on the “many”.
Further exacerbating this, all of my license keys include (at least) two activations by default to support the work/home machine use case. These client IDs are invaluable for ensuring that the correct activation is reset when a user has lost access to a machine, a company has had employee turnover, etc.
So while I understand that the answer to my question is “no”, it seems like it might be useful to inquire why I would even ask the question instead of just suggesting that what I'm doing is likely incorrect since I'm even asking the question.
Yeah, the answer is “no”, for now.
Extra data is a good secondary-filter for license information. So, in your case, a way to distinguish between work / home devices. But the email, or other custom license fields for the license itself is the primary-filter. Namely, who bought the license.
But that's the issue…at least for me, “who bought the license” often has very little relationship with “who uses the license".
Ignoring resellers and distributors for a moment, I have one customer with a very large number of licenses, all of which are purchased and managed by their IT department. All of those licenses have an email address like “ITPurchasing@customer.com”. They reassign licenses as their employees turn over, and they actually buy bulk lots of licenses ahead of the actual employees so that they have them at-the-ready for new hires. This customer is not going to update the email addresses on those licenses for the end user when they're assigned and reassigned.
However, as you can imagine, once in a while their records get out of whack, and they'd like to know either who is currently using a license--which is simple because you can search by license key and see activations--or the converse, which license is assigned to a given user. If it were possible to search by extra data (which holds the activation client ID in my use case), it would be much easier to answer that second question.
As it is now, my best (and only?) way of doing it is doing an export of all of their licenses to XML including the activation data, then searching that file for the client ID pattern to locate the matching activation and therefore license key.
Am I missing something? How would you handle such a use case right now?