Korzystanie z klasy DRMManager

Flash Player 10.1 i nowsze wersje, Adobe AIR 1.5 i nowsze wersje

Klasa DRMManager służy do zarządzania kuponami i sesjami serwera uprawnień DRM w aplikacjach.

Zarządzanie kuponami (dotyczy tylko środowiska AIR)

Za każdym razem, gdy użytkownik odtwarza chronione treści, środowisko wykonawcze uzyskuje i zapisuje w pamięci podręcznej licencję wymaganą do wyświetlania tych treści. Jeśli aplikacja zapisuje plik lokalnie, a licencja zezwala na odtwarzanie w trybie offline, użytkownik może wyświetlać treść w aplikacji AIR. Takie lokalne odtwarzanie w trybie offline jest możliwe nawet w sytuacji, gdy połączenie z serwerem zarządzania prawami do multimediów jest niedostępne. Za pomocą obiektu DRMManager i metody preloadEmbeddedMetadata() obiektu NetStream można wstępnie zbuforować kupon. Aplikacja nie musi uzyskiwać licencji potrzebnej do wyświetlania treści. Na przykład aplikacja może pobrać plik multimedialny i uzyskać kupon, gdy użytkownik jeszcze ma połączenie.

Aby wstępnie załadować kupon, należy pobrać obiekt DRMContentData za pomocą metody preloadEmbeddedMetadata() obiektu NetStream. Obiekt DRMContentData zawiera adres URL i domenę serwera uprawnień DRM, który może udostępnić licencję, oraz opisuje, czy wymagane jest uwierzytelnienie użytkownika. Na podstawie tej informacji można wywołać metodę loadVoucher() klasy DRMManager w celu uzyskania kuponu i zapisania go w buforze. Obieg pracy wstępnego wczytywania kuponów jest opisany w sekcji Wstępne wczytywanie kuponów w celu odtwarzania offline .

Zarządzanie sesją

Klasy DRMManager można także użyć do uwierzytelnienia użytkownika na serwerze uprawnień DRM i do zarządzania sesjami trwałymi.

Wywołanie metody authenticate() klasy DRMManager umożliwia nawiązanie sesji z serwerem uprawnień DRM. Po pomyślnym uwierzytelnieniu klasa DRMManager wywołuje obiekt DRMAuthenticationCompleteEvent. Ten obiekt zawiera token sesji. Token można zapisać w celu nawiązywania w przyszłości sesji bez konieczności ponownego wprowadzania poświadczeń konta przez użytkownika. Aby rozpocząć nową sesję uwierzytelnioną, należy przekazać token do metody setAuthenticationToken() . (Ustawienia serwera, który wygenerował token, określają termin ważności tego tokenu i jego inne atrybuty. Kod aplikacji AIR nie powinien bezpośrednio interpretować struktury danych tokenu, ponieważ struktura ta może ulec zmianie w przyszłych wersjach środowiska AIR).

Tokeny uwierzytelniania można przenosić na inne komputery. Aby chronić tokeny, można przechowywać je w zaszyfrowanym magazynie lokalnym środowiska AIR. Więcej informacji zawiera sekcja Zaszyfrowany magazyn lokalny .

Zdarzenia DRMStatus

Klasa DRMManager wywołuje obiekt DRMStatusEvent po pomyślnym zakończeniu wywoływania metody loadVoucher() .

Jeśli uzyskano kupon, właściwość detail (tylko w AIR) obiektu zdarzenia ma wartość: „DRM.voucherObtained”, a właściwość voucher zawiera obiekt DRMVoucher.

Jeśli kupon nie został uzyskany, właściwość detail (tylko w AIR) także ma wartość „DRM.voucherObtained”; jednak właściwość voucher jest wówczas równa null . Nieuzyskanie kuponu może wynikać np. z przypisania właściwości LoadVoucherSetting wartości localOnly i braku lokalnie buforowanego kuponu.

Jeśli wywołanie metody loadVoucher() nie zostanie pomyślnie zakończone, prawdopodobnie z powodu błędu uwierzytelniania lub komunikacji, klasa DRMManager wywoła obiekt zdarzenia DRMErrorEvent lub DRMAuthenticationErrorEvent.

Zdarzenia DRMAuthenticationComplete

Klasa DRMManager wywołuje obiekt DRMAuthenticationCompleteEvent, gdy użytkownik zostanie pomyślnie uwierzytelniony w wyniku wywołania metody authenticate() .

Obiekt DRMAuthenticationCompleteEvent zawiera token wielokrotnego użytku, który można wykorzystać do zachowywania uwierzytelnienia użytkownika między sesjami aplikacji. W celu ponownego nawiązania sesji token należy przekazać do metody setAuthenticationToken() klasy DRMManager. (Kod tworzący token ustawia jego atrybuty, takie jak termin ważności. Adobe nie udostępnia wywołań API służących do analizowania atrybutów tokenu).

Zdarzenia DRMAuthenticationError

Klasa DRMManager wywołuje obiekt DRMAuthenticationErrorEvent, gdy nie powiedzie się uwierzytelnienie użytkownika poprzez wywołanie metody authenticate() lub setAuthenticationToken() .