DRMAuthenticateEvent sınıfını kullanma

Adobe AIR 1.0 ve üstü

DRMAuthenticateEvent nesnesi bir NetStream nesnesi, oynatılmadan önce kimlik doğrulama için kullanıcı kimlik bilgisi gerektiren korumalı içeriği oynatmaya çalıştığında gönderilir.

DRMAuthenticateEvent işleyicisi gerekli kimlik bilgilerini (kullanıcı adı, şifre ve tür) toplamaktan ve değerleri doğrulama için NetStream.setDRMAuthenticationCredentials() yöntemine iletmekten sorumludur. Her AIR uygulaması kullanıcı kimlik belgelerini edinmek için bazı mekanizmalar sağlamalıdır. Örneğin uygulama, kullanıcı adı ve şifre değerlerini girmesi için kullanıcıya basit bir kullanıcı arabirimi sağlayabilir. Bunun yanında, tekrarlayan kimlik doğrulama girişimlerini işlemek ve sınırlamak için bir mekanizma oluşturun.

DRMAuthenticateEvent özellikleri

DRMAuthenticateEvent sınıfı aşağıdaki özellikleri içerir:

Özellik

Açıklama

authenticationType

Verilen kimlik bilgilerinin Adobe Access (“drm”) veya proxy sunucusu (“proxy”) öğelerinden hangisine yönelik kimlik doğrulama yaptığını belirtir. Örneğin, "proxy" seçeneği kullanıcının İnternet’e erişebilmesi için uygulamanın gerektiğinde proxy sunucusuna yönelik kimlik doğrulaması yapmasına izin verir. Adsız kimlik doğrulaması kullanılmadığı sürece, kullanıcı proxy kimlik doğrulamasından sonra makbuzu almak ve içeriği oynatmak üzere Adobe Access için kimlik doğrulaması yapmalıdır. Adobe Access kimlik doğrulaması yapmak için setDRMAuthenticationcredentials() öğesini "drm" seçeneğiyle ikinci kez kullanabilirsiniz.

header

Sunucu tarafından sağlanan şifreli içerik dosya üstbilgisi. Şifreli içeriğin bağlamına ilişkin bilgi içerir.

Bu üstbilgi dizesi, uygulamanın bir kullanıcı adı - şifre iletişim kutusu oluşturmasını sağlamak üzere Flash uygulamasına iletilebilir. Üstbilgi dizesi, iletişim kutusu talimatları olarak kullanılabilir. Örneğin üstbilgi, "Kullanıcı adınızı ve şifrenizi girin" olabilir.

netstream

Bu olayı başlatan NetStream nesnesi.

passwordPrompt

Sunucu tarafından sağlanan, şifre kimlik bilgisi istemi. Dize, istenilen şifre türü için talimat içerebilir.

urlPrompt

Sunucu tarafından sağlanan, URL dizesi istemi. Dize, kullanıcı adı ve şifrenin gönderildiği konumu sağlayabilir.

usernamePrompt

Sunucu tarafından sağlanan, kullanıcı adı kimlik bilgisi istemi. Dize, istenilen kullanıcı adı türü için talimat içerebilir. Örneğin, bir içerik sağlayıcı, kullanıcı adı olarak e-posta adresi isteyebilir.

Bahsi geçen dizeler yalnızca FMRMS sunucusu tarafından sağlanır. Adobe Access Sunucusu bu dizeleri kullanmaz.

DRMAuthenticateEvent işleyicisi oluşturma

Aşağıdaki örnek, olayı başlatan NetStream nesnesine kodlanmış kimlik denetimi bilgileri ileten bir olay işleyicisi oluşturur. (Video oynatmaya ve video akışına başarılı bir bağlantı yapıldığını doğrulamaya ilişkin kod burada yer almamaktadır.)

var connection:NetConnection = new NetConnection(); 
connection.connect(null); 
 
var videoStream:NetStream = new NetStream(connection); 
 
videoStream.addEventListener(DRMAuthenticateEvent.DRM_AUTHENTICATE, 
                            drmAuthenticateEventHandler) 
 
private function drmAuthenticateEventHandler(event:DRMAuthenticateEvent):void  
{ 
    videoStream.setDRMAuthenticationCredentials("administrator", "password", "drm"); 
} 

Kullanıcı kimlik bilgilerini almak için bir arabirim oluşturma

Korumalı içeriğin kullanıcı kimlik bilgilerini gerektirdiği durumlarda, AIR uygulamasının kullanıcının kimlik doğrulama bilgilerini genellikle bir kullanıcı arabirimi üzerinden alması gerekir.

Aşağıda kullanıcı kimlik bilgilerini almaya yönelik basit bir Flex kullanıcı arabirimi örneği bulunmaktadır. Kullanıcı adı ve şifre kimlik bilgilerinin her biri için birer tane olmak üzere iki TextInput nesnesi içeren bir panel nesnesinden oluşur. Panel ayrıca credentials() yöntemini başlatan bir düğme de içerir.

<mx:Panel x="236.5" y="113" width="325" height="204" layout="absolute" title="Login"> 
    <mx:TextInput x="110" y="46" id="uName"/> 
    <mx:TextInput x="110" y="76" id="pWord" displayAsPassword="true"/> 
    <mx:Text x="35" y="48" text="Username:"/> 
    <mx:Text x="35" y="78" text="Password:"/> 
    <mx:Button x="120" y="115" label="Login" click="credentials()"/> 
</mx:Panel>

credentials() yöntemi, kullanıcı adı ve şifre değerlerini setDRMAuthenticationCredentials() yöntemine ileten kullanıcı tanımlı bir yöntemdir. Değerler iletildikten sonra, credentials() yöntemi TextInput nesnelerinin değerlerini sıfırlar.

<mx:Script> 
    <![CDATA[ 
        public function credentials():void  
        { 
            videoStream.setDRMAuthenticationCredentials(uName, pWord, "drm"); 
            uName.text = ""; 
            pWord.text = ""; 
        } 
    ]]> 
</mx:Script>

Bu tür basit bir arabirimi yüklemenin bir yolu paneli yeni durumun bir parçası olarak eklemektir. Yeni durum, DRMAuthenticateEvent nesnesi atıldığında temel durumdan oluşur. Aşağıdaki örnek, korumalı bir FLV’yi işaret eden kaynak niteliğine sahip bir VideoDisplay nesnesi içerir. Bu durumda, uygulamayı da temel duruma döndürmesi için credentials() yöntemi değiştirilir. Bu yöntem kullanıcı kimlik bilgilerini ilettikten ve TextInput nesne değerlerini sıfırladıktan sonra bu işlemi gerçekleştirir.

<?xml version="1.0" encoding="utf-8"?> 
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" 
    width="800" 
    height="500" 
    title="DRM FLV Player" 
    creationComplete="initApp()" > 
 
    <mx:states> 
        <mx:State name="LOGIN"> 
            <mx:AddChild position="lastChild"> 
                    <mx:Panel x="236.5" y="113" width="325" height="204" layout="absolute"  
                            title="Login"> 
                    <mx:TextInput x="110" y="46" id="uName"/> 
                    <mx:TextInput x="110" y="76" id="pWord" displayAsPassword="true"/> 
                    <mx:Text x="35" y="48" text="Username:"/> 
                    <mx:Text x="35" y="78" text="Password:"/> 
                    <mx:Button x="120" y="115" label="Login" click="credentials()"/> 
                    <mx:Button x="193" y="115" label="Reset" click="uName.text='';  
                            pWord.text='';"/> 
                </mx:Panel> 
            </mx:AddChild> 
        </mx:State> 
    </mx:states> 
 
    <mx:Script> 
        <![CDATA[ 
                import flash.events.DRMAuthenticateEvent; 
            private function initApp():void  
            { 
                videoStream.addEventListener(DRMAuthenticateEvent.DRM_AUTHENTICATE, 
                                        drmAuthenticateEventHandler); 
            } 
 
            public function credentials():void  
            { 
                videoStream.setDRMAuthenticationCredentials(uName, pWord, "drm"); 
                uName.text = ""; 
                pWord.text = ""; 
                currentState=''; 
            } 
 
            private function drmAuthenticateEventHandler(event:DRMAuthenticateEvent):void  
            { 
                currentState='LOGIN'; 
            } 
        ]]> 
    </mx:Script> 
     
    <mx:VideoDisplay id="video" x="50" y="25" width="700" height="350" 
        autoPlay="true" 
        bufferTime="10.0" 
        source="http://www.example.com/flv/Video.flv" /> 
</mx:WindowedApplication>