PublishLicense Class

 

Represents a signed rights managed publish license.

Namespace:   System.Security.RightsManagement
Assembly:  WindowsBase (in WindowsBase.dll)

System.Object
  System.Security.RightsManagement.PublishLicense

[SecurityCriticalAttribute(SecurityCriticalScope.Everything)]
public class PublishLicense

NameDescription
System_CAPS_pubmethodPublishLicense(String)

Initializes a new instance of the PublishLicense class from a specified serialized and signed PublishLicense.

NameDescription
System_CAPS_pubpropertyContentId

Gets the publisher-created content identifier.

System_CAPS_pubpropertyReferralInfoName

Gets the contact name for the author or publisher of the content.

System_CAPS_pubpropertyReferralInfoUri

Gets the contact URI for the author or publisher of the content.

System_CAPS_pubpropertyUseLicenseAcquisitionUrl

Gets the URI to use for acquiring a UseLicense.

NameDescription
System_CAPS_pubmethodAcquireUseLicense(SecureEnvironment)

Attempts to acquire a UseLicense for a user or user group in a specified SecureEnvironment.

System_CAPS_pubmethodAcquireUseLicenseNoUI(SecureEnvironment)

Attempts to acquire a UseLicense for a user or user group in a specified SecureEnvironment.

System_CAPS_pubmethodDecryptUnsignedPublishLicense(CryptoProvider)

Returns a decrypted UnsignedPublishLicense version of this signed PublishLicense.

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_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_protmethodMemberwiseClone()

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

System_CAPS_pubmethodToString()

Returns the serialized XrML string that was used to create this license.(Overrides Object.ToString().)

PublishLicense defines security data about rights, users, and other security-related information. The license defines how a specific user on a specific computer can use specified rights managed content.

The publishing process begins with the document author, who defines rights information in an UnsignedPublishLicense. Next, the author creates a signed PublishLicense by calling the Sign method of the UnsignedPublishLicense. The serialized form of the signed PublishLicense can then be provided to end users who can use it to acquire a UseLicense by calling the AcquireUseLicense method of the PublishLicense. The returned UseLicense then allows the client application to exercise the rights that were granted to the user.

As with other System.Security.RightsManagement types, PublishLicense is only usable in full trust applications.

The following example shows how to initialize a PublishLicense by using the Sign method.

WriteStatus("   Signing the UnsignedPublishLicense\n" +
            "       to build the PublishLicense.");
UseLicense authorsUseLicense;
PublishLicense publishLicense =
    unsignedLicense.Sign(_secureEnv, out authorsUseLicense);

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

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

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

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

WriteStatus("Verifying package encryption.");
if (EncryptedPackageEnvelope.IsEncryptedPackageEnvelope(encryptedFile))
{
    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.\n");
    return false;
}

.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: