PublishLicense 类

定义

表示已签名的权限管理发布许可证。

public ref class PublishLicense
[System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)]
public class PublishLicense
public class PublishLicense
[<System.Security.SecurityCritical(System.Security.SecurityCriticalScope.Everything)>]
type PublishLicense = class
type PublishLicense = class
Public Class PublishLicense
继承
PublishLicense
属性

示例

以下示例演示如何使用 Sign 方法初始化 PublishLicense

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;
}
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

注解

PublishLicense 定义有关权限、用户和其他安全相关信息的安全数据。 许可证定义特定计算机上的特定用户如何使用指定的权限托管内容。

发布过程从文档作者开始,该作者在 中 UnsignedPublishLicense定义权限信息。 接下来,作者通过调用 Sign 的 方法创建有符号PublishLicenseUnsignedPublishLicense。 然后,可以将已签名PublishLicense的序列化形式提供给最终用户,他们可以通过调用 AcquireUseLicense 的 方法PublishLicense使用它来获取 UseLicense 。 然后返回的 UseLicense 允许客户端应用程序行使授予用户的权限。

与其他 System.Security.RightsManagement 类型一样, PublishLicense 仅在完全信任应用程序中可用。

构造函数

PublishLicense(String)

从指定的已签名并序列化的 PublishLicense 初始化 PublishLicense 类的新实例。

属性

ContentId

获取发布者创建的内容标识符。

ReferralInfoName

获取内容作者或发布者的联系人名称。

ReferralInfoUri

获取内容作者或发布者的联系人 URI。

UseLicenseAcquisitionUrl

获取用于获得 UseLicense 的 URI。

方法

AcquireUseLicense(SecureEnvironment)

尝试为指定 UseLicense 中的用户或用户组获取 SecureEnvironment

AcquireUseLicenseNoUI(SecureEnvironment)

尝试为指定 UseLicense 中的用户或用户组获取 SecureEnvironment

DecryptUnsignedPublishLicense(CryptoProvider)

返回已签名的此 UnsignedPublishLicensePublishLicense 解密版本。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回用于创建此许可证的序列化 XrML 字符串。

适用于

另请参阅