Issuing Licenses Based on Client Version and Individualization Information
You can issue licenses based on the whether the digital rights management (DRM) component of a consumer's player has received a security upgrade (a process known as individualization). When you receive a license request, retrieve the required individualization version from the content header, then put this value into the WMRMLicGen.IndividualizedVersion property.
If the consumer's player meets the individualization requirement, a license is generated. If the consumer's player does not meet the individualization requirement and license generation fails, you can initiate the individualization process indirectly. This process is initiated only when a consumer tries to play a packaged file that requires an individualized player.
So, when you receive a license request from a player that has not received a security upgrade (or is not the latest version), you can display a Web page with an embedded packaged file requiring individualization (for example, you can embed a very small dummy file that opens automatically). After the dummy file opens, the consumer is prompted to get a security upgrade. When the consumer installs the security upgrade, you can continue with the license acquisition process.
For the latest individualization version information, see the Microsoft Web site https://licenseserver.windowsmedia.com/.
The following Visual Basic® Scripting Edition (VBScript) code example shows how to evaluate the client information.
VBScript Example
' Retrieve the license request from the client computer.
strLicenseRequested = Request.Form("challenge")
' Set the license request into the WMRMChallenge object.
ChallengeObj.Challenge = strLicenseRequested
' Retrieve the header from the challenge.
header = ChallengeObj.Header
' Set the header into the WMRMHeader object.
HeaderObj.header = header
' Retrieve the individualization version of the client from the
' WMRMHeader object.
indiversion = HeaderObj.IndividualizedVersion
'Individualized version may not exist in the content header.
err.clear
' Set the individualization version into the WMRMLicGen object.
LicGenObj.IndividualizedVersion = indiversion
See Also