Windows Media Rights Manager SDK banner art

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