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

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

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