RightsManagementInformation Class

 

Represents Digital Rights Management (DRM) information that is stored in an EncryptedPackageEnvelope.

Namespace:   System.IO.Packaging
Assembly:  WindowsBase (in WindowsBase.dll)

System.Object
  System.IO.Packaging.RightsManagementInformation

Public Class RightsManagementInformation

NameDescription
System_CAPS_pubpropertyCryptoProvider

Gets or sets the CryptoProvider for accessing the package's encrypted rights management data stream.

NameDescription
System_CAPS_pubmethodDeleteUseLicense(ContentUser)

Deletes the UseLicense for a specified user from the encrypted rights management data stream.

System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetEmbeddedUseLicenses()

Returns a dictionary collection of user and UseLicense key/value pairs from the encrypted rights management data stream.

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodLoadPublishLicense()

Returns the embedded PublishLicense from the encrypted rights management data stream.

System_CAPS_pubmethodLoadUseLicense(ContentUser)

Returns a specified user's embedded UseLicense from the encrypted rights management data stream.

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodSavePublishLicense(PublishLicense)

Saves a given PublishLicense to the encrypted rights management data stream.

System_CAPS_pubmethodSaveUseLicense(ContentUser, UseLicense)

Saves a given UseLicense for a specified user to the encrypted rights management data stream.

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

RightsManagementInformation provides access to the PublishLicense and UseLicense data stored in a rights managed protected Package.

The following example shows how to initialize a RightsManagementInformation object for encryption.

WriteStatus("   Signing the UnsignedPublishLicense" & vbLf & "       to build the PublishLicense.")
            Dim authorsUseLicense As UseLicense = Nothing
Dim publishLicense As PublishLicense = unsignedLicense.Sign(_secureEnv, authorsUseLicense)

WriteStatus("   Binding the author's UseLicense and")
WriteStatus("       obtaining the CryptoProvider.")
Dim cryptoProvider As CryptoProvider = authorsUseLicense.Bind(_secureEnv)

WriteStatus("   Creating the EncryptedPackage.")
Dim packageStream As Stream = File.OpenRead(packageFile)
Dim ePackage As EncryptedPackageEnvelope = EncryptedPackageEnvelope.CreateFromPackage(encryptedFile, packageStream, publishLicense, cryptoProvider)

WriteStatus("   Adding an author's UseLicense.")
Dim rmi As RightsManagementInformation = ePackage.RightsManagementInformation
rmi.SaveUseLicense(author, authorsUseLicense)

ePackage.Close()
WriteStatus("   Done - Package encryption complete.")

WriteStatus("Verifying package encryption.")
If EncryptedPackageEnvelope.IsEncryptedPackageEnvelope(encryptedFile) Then
	WriteStatus("   Confirmed - '" & encryptedFilename & "' is encrypted.")
Else
	MessageBox.Show("ERROR: '" & encryptedFilename & "' is NOT ENCRYPTED.", "Encryption Error", MessageBoxButton.OK, MessageBoxImage.Error)
	WriteStatus("ERROR: '" & encryptedFilename & "' is NOT ENCRYPTED." & vbLf)
	Return False
End If

The following example shows how to initialize a RightsManagementInformation object for decryption.

ShowStatus("   Opening the encrypted Package.")
Dim ePackage As EncryptedPackageEnvelope = EncryptedPackageEnvelope.Open(xpsFile, FileAccess.ReadWrite)
Dim rmi As RightsManagementInformation = ePackage.RightsManagementInformation

ShowStatus("   Looking for an embedded UseLicense for user:" & vbLf & "       " & currentUserId & " [" & _authentication & "]")
Dim useLicense As UseLicense = rmi.LoadUseLicense(New ContentUser(currentUserId, _authentication))

Dim grants As ReadOnlyCollection(Of ContentGrant)
If useLicense Is Nothing Then
	ShowStatus("   No Embedded UseLicense found." & vbLf & "       " & "Attempting to acqure UseLicnese" & vbLf & "       " & "from the PublishLicense.")
	Dim pubLicense As PublishLicense = rmi.LoadPublishLicense()

	ShowStatus("   Referral information:")

	If pubLicense.ReferralInfoName Is Nothing Then
		ShowStatus("       Name: (null)")
	Else
		ShowStatus("       Name: " & pubLicense.ReferralInfoName)
	End If

	If pubLicense.ReferralInfoUri Is Nothing Then
		ShowStatus("    Uri: (null)")
	Else
		ShowStatus("    Uri: " & pubLicense.ReferralInfoUri.ToString())
	End If

	useLicense = pubLicense.AcquireUseLicense(_secureEnv)
	If useLicense Is Nothing Then
		ShowStatus("   User DOES NOT HAVE RIGHTS" & vbLf & "       " & "to access this document!")
		Return False
	End If
End If ' end:if (useLicense == null)
ShowStatus("   UseLicense acquired.")

.NET Framework
Available since 3.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: