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>