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