Protection PLUS 5 SDK license files contain all the license data and parameters needed by your application. License Manager categorizes the data to make it easier to manage and edit. Each category has a set of fields, and the license file schema describes each field in detail. Before configuring the license fields, it is important that you have an understanding of licensing and have defined your licensing requirements.
The field descriptions in this topic are also displayed at the bottom of License Manager's window for each category and field.
Category | Description |
---|---|
License | In SOLO Server, each license record is created from a Product Option, and always belongs to a customer record. Without SOLO Server, each license file is created by License Manager without a corresponding license record. |
User-Defined Dates | User-defined date fields 1 through 5, which may be used for arbitrary dates when needed for additional, customized license data. |
User-Defined Floats | User-defined float fields 1 through 5, which may be used for arbitrary decimal values when needed for additional, customized license data. |
User-Defined Numbers | User-defined number fields 1 through 5, which may be used for arbitrary integer values when needed for additional, customized license data. |
User-Defined Strings | User-defined string fields 1 through 5, which may be used for arbitrary alpha-numeric values when needed for additional, customized license data. |
Author | You or your company is the "Author" of the software or application being licensed. |
Customer | The Customer represents your customer, for whom one or more licenses have been issued. |
Distributor | In SOLO Server, a distributor represents a company or individual that resells your products or applications, or an affiliate which refers customers and prospects to your web site. The distributor information can be particularly useful in scenarios when the distributor acts like a reseller, and also provides its customers with technical support. |
Product | Each Product defined typically represents the Product or application being licensed (i.e. "XYZ Product"). Products must contain one or more Product Options, as all licenses are created from Product Options. |
ProductOption | Product Options define licensing or purchasing options available under a Product. These can reflect any number of unique licensing and/or purchasing options, for example: "1 Year Subscription", "1 Year Subscription with Backup CD", or "1 Year Subscription Renewal". |
The following fields are important when you are using License Manager, and most licensing implementations will need data in these fields. If you are using the Protection PLUS 5 SDK samples, it will be expecting data in some of these fields (see below).
Field | Description |
---|---|
LicenseID | A unique, numeric identifier for the license issued (typically issued by SOLO Server). If you are using License Manager without SOLO Server, you will want to keep track of what License ID you issue to each customer. |
ProductID | A unique, numeric identifier used to identify the Product for which a license was issued. This value is typically generated by SOLO Server. If you are only using License Manager, you can choose your own value for the Product ID. You can choose to verify this value in your source code. |
ProdOptionID | A unique, numeric identifier used to identify the Product Option for which a license was issued. This value is typically generated by SOLO Server. If you are only using License Manager, you can choose your own value for the ProductOptionID. |
SignatureDate | The date in which the license file itself was created and signed by License Manager or SOLO Server. This is automatically set when you save the license file with License Manager. |
EffectiveStartDate | The date in which the license is effective. This is typically the date in which the license was created in License Manager or added in SOLO Server. |
EffectiveEndDate | This typically reflects the date in which the license expires (for time-limited licenses), but it is also possible for your application to use this date for other purposes when the license is not time-limited, such as notifying customers when support/maintenance subscription periods are about to expire. When using SOLO Server, this field corresponds with the "Download Until" date of the license record. |
LastUpdated | Only available when using writable license files, this reflects the last date and time in which the application was run. This is automatically set when you save the license file with License Manager. |
InstallationID | When using SOLO Server, an Installation ID is created when the application is activated so that Electronic License Management (ELM) may be leveraged on the individual system. Activation done through SOLO Server uses a License ID and Password, which are not necessarily required when using License Manager. An Installation ID will not be auto-generated by License Manager |
InstallationName | An optional, human-readable description of an Installation ID. This is typically specified by the user to help describe which of several systems he or she owns is being activated (a user could enter something like "Home Desktop" or "Work Laptop"). |
ActivationData | Contains the system identifiers used to identify the system which is authorized to use the license file. |
TriggerCode | The Trigger Code number is a numeric value between 1 and 50, and is typically used to reflect the type of license being issued (i.e. non-expiring, time-limited, etc...). This value is configured manually in License Manager or in a Product Option in SOLO Server, and can be passed during a trigger code activation. |
TriggerCodeFixedValue | The Trigger Code Fixed Value is a numeric value up to 14 bits in size (or a maximum value of 16383), which is typically used to conditionally enable application features, or distinguish between different product or application editions (i.e. "Express Edition" and "Enterprise Edition", etc...). This value is configured manually in License Manager or in a Product Option in SOLO Server, and can be passed during a trigger code activation. |
You can use the LicenseCustomData field or the User-Defined* fields to store whatever custom data or parameters you want. This data will be available to your licensed application just like any other field.
When you are updating a license file or processing manual activation requests, you can edit the values of the license file that your customer will receive. Certain values in the license file can be validated against values in the source code. The license file can also contain other data or parameters needed by your application. The following list will detail which license file fields need to be configured in License Manager to activate or run the Protection PLUS 5 SDK samples:
Field | Value | Description |
---|---|---|
License ID | any positive integer | If you are not using SOLO Server, this can be any positive integer and should be unique for each license. |
Product ID | 212488 |
The sample projects use the default value of 212488 for the ProductID which it uses to validate against the license file. |
Signature Date |
any date in the format: YYYY-MM-DDTHH:MM.SSZ |
This is set automatically when you save the license file with License Manager. This date will be before the customer's system date if they haven't altered their system clock. |
Installation ID | any non-empty string | When using SOLO Server, an Installation ID is created when the application is activated so that Electronic License Management (ELM) may be leveraged on the individual system. Activation done through SOLO Server uses a License ID and Password, which are not necessarily required when using License Manager. An Installation ID will not be auto-generated by License Manager, but the samples expect any non-empty string. |
You can configure different fields, including the TriggerCode field, the User-Defined* fields, or the LicenseCustomData fields to pass custom information for your application to utilize. This data is typically used to determine things such as the type of license being issued (e.g. perpetual/non-expiring or time-limited), the version/edition of your application being licensed (e.g. "Express Edition" or "Enterprise Edition"), or details about specific features or modules that should be enabled or disabled. Other fields, such as EffectiveEndDate and LicenseCounter, can be used to restrict the use of you application based on date, number of users, etc.
Field | Value | Result |
---|---|---|
Trigger Code | 1 - 50 | Your application can set the license type based on the Trigger Code it reads from the license file. In our sample projects, a Trigger Code value of 11 designates a time-limited license type, but you are free to use the Trigger Code values however you want. The Trigger Code is sent during a trigger code activation. |
TriggerCodeFixedValue | int | This integer value can be read as bits enable features, or possibly designate which edition of the software should be activated. The TriggerCodeFixedValue is sent during a trigger code activation. |
EffectiveStartDate |
any date in the format: YYYY-MM-DDTHH:MM.SSZ |
For a time-limited license, this field sets the beginning of the license period |
EffectiveEndDate |
any date in the format: YYYY-MM-DDTHH:MM.SSZ |
For a time-limited license, this field sets the expiration of the license period |
LicenseCustomData | any string |
Custom string or XML formatted data specific to the license. Note that using long strings (anything over a KB or two) can cause performance degradation, and excessively long strings can also cause other problems. |
User-Defined* | custom date, number or string |
These fields can contain custody data. If also using SOLO Server, there is a 50 character limit on the size of the User Defined string/char fields. The LicenseCustomData field can potentially provide more flexibility, as it accepts XML formatted data. |
LastUpdated |
any date in the format: YYYY-MM-DDTHH:MM.SSZ |
If using a writable license file, this field needs to be updated so that it is not overwritten on the user's machine by an alias file with a later date. This is set automatically when you save the license file with License Manager. |
LicenseCounter | any positive integer |
This will set the number of allowed network seats when using network floating licensing. It can also function as a usage counter that gets decremented or incremented. |