Silent License Acquisition
Silent license acquisition is used when the application has all the information it needs from the user to obtain an end-user license.
The application calls the DRMAcquireLicense function. It may also specify a specific license acquisition URL (LAURL), but if none is used, it will use the default silent LAURL specified in the license used to create the license storage session passed in (recommended method). DRMAcquireLicense is asynchronous because license acquisition can take considerable time, so the Active Directory Rights Management Services (AD RMS) client API returns control to the application immediately, and continues processing the license acquisition call on a separate thread.
Progress of the asynchronous DRMAcquireLicense function is sent to the application's callback function (see AD RMS Callback Function Reference). The retrieved end-user license will be deposited in the temporary or permanent license store, as indicated by the flag passed to the function. All licenses in the temporary store will be deleted when the license storage session is closed.
If the license acquisition attempt fails, the application can then query the license issuance license for a backup LAURL (see Querying Licenses). The application calls DRMAcquireLicense again, specifying the backup URL (if the license has one) in the method's wszURL parameter.
Note On RMS client 1.0, if this fails, or if there is no backup URL, the application can then attempt nonsilent license acquisition. For more information about nonsilent license acquisition, see Nonsilent License Acquisition.
After the license is acquired, it can be kept in the permanent license store handled by the AD RMS client or it can be stored by the application.
An issuance license can hold information for two silent LAURLs. The application can use either of those, or it can pass its own into the wszURL parameter of DRMAcquireLicense. These are the two LAURLs a license can have:
- Default silent LAURL
- Backup silent LAURL
Default silent LAURL
If DRMAcquireLicense is not given the DRM_AL_NONSILENT flag and no override LAURL is passed in, this LAURL is used by default. This is usually the URL of the issuance license signing service that is entered in the wszURL parameter of the DRMGetSignedIssuanceLicense function when the license is signed. The information can be obtained by license querying or by specifying the DRM_DISTRIBUTION_POINT_LICENSE_ACQUISITION flag in the uFlags parameter of the DRMGetIssuanceLicenseInfo function. The following example shows the default silent LAURL in a license.
<DISTRIBUTIONPOINT>
<OBJECT type="License-Acquisition-URL">
<ID type="MS-GUID">{0045FD50-383B-43AA-90A4-ED013CD0CFE5}</ID>
<NAME>Contoso Licensing Authority</NAME>
<ADDRESS type="URL">https://Contoso.com/_wmcs/licensing</ADDRESS>
</OBJECT>
</DISTRIBUTIONPOINT>
Backup silent LAURL
If the default LAURL fails, an application can try this LAURL if the license has it. A license is not guaranteed to have a backup silent LAURL. This LAURL is not used automatically; an application must query the license for it and pass it into the wszURL parameter of the DRMAcquireLicense function. This LAURL is added to the license by the issuance license signing service. The following example shows this LAURL in a license.
<DISTRIBUTIONPOINT>
<OBJECT type="Extranet-License-Acquistion-URL">
<ID type="MS-GUID">{82242010-208A-458A-BAB6-C3C60F06DD5F}</ID>
<NAME>Contoso Backup Licensing Server</NAME>
<ADDRESS type="URL">https://Contoso.com/backup/_wmcs/licensing</ADDRESS>
</OBJECT>
</DISTRIBUTIONPOINT>
See Also
End-User License Acquisition
License Management
Querying Licenses
Building a Publishing Application
DRMAcquireLicense
DRMGetSignedIssuanceLicense
Send comments about this topic to Microsoft
Build date: 3/13/2008