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
Атрибуты

Примеры

В следующем примере показано, как инициализировать объект PublishLicense с помощью Sign метода.

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. Затем автор создает подписанный PublishLicense путем вызова Sign метода UnsignedPublishLicense. Затем сериализованную форму подписанного PublishLicense можно предоставить конечным пользователям, которые могут использовать его для получения UseLicense путем вызова AcquireUseLicense метода PublishLicense. Затем возвращенное UseLicense позволяет клиентскому приложению осуществлять права, предоставленные пользователю.

Как и в случае с другими System.Security.RightsManagement типами, PublishLicense можно использовать только в приложениях с полным доверием.

Конструкторы

PublishLicense(String)

Инициализирует новый экземпляр класса PublishLicense из заданного сериализованного и подписанного класса PublishLicense.

Свойства

ContentId

Возвращает созданный издателем идентификатор содержимого.

ReferralInfoName

Возвращает имя контакта, соответствующее автору или издателю содержимого.

ReferralInfoUri

Возвращает URI контакта, соответствующий автору или издателю содержимого.

UseLicenseAcquisitionUrl

Возвращает URI, с помощью которого будет получен UseLicense.

Методы

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, которая использовалась для создания этой лицензии.

Применяется к

См. также раздел