PublishLicense 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示已签名的权限管理发布许可证。
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 的 方法创建有符号PublishLicense的 UnsignedPublishLicense。 然后,可以将已签名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) |
返回已签名的此 UnsignedPublishLicense 的 PublishLicense 解密版本。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回用于创建此许可证的序列化 XrML 字符串。 |