Als gebruikersverificatie vereist is voor beveiligde inhoud, moet de AIR-toepassing de verificatiegegevens van de gebruiker doorgaans via een gebruikersinterface opvragen.
Hierna volgt een Flex-voorbeeld van een eenvoudige gebruikersinterface om de gebruikersgegevens op te vragen. Deze interface bestaat uit een deelvensterobject met twee TextInput-objecten: één voor de gebruikersnaam en één voor het wachtwoord. Het deelvenster bevat ook een knop waarmee de methode
credentials()
wordt gestart.
<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>
De methode
credentials()
is een door de gebruiker gedefinieerde methode waarmee de gebruikersnaam en het wachtwoord worden doorgegeven aan de methode
setDRMAuthenticationCredentials()
. Nadat de waarden zijn doorgestuurd, voert de methode
credentials()
een reset uit van de waarden van de TextInput-objecten.
<mx:Script>
<![CDATA[
public function credentials():void
{
videoStream.setDRMAuthenticationCredentials(uName, pWord, "drm");
uName.text = "";
pWord.text = "";
}
]]>
</mx:Script>
U kunt een dergelijke eenvoudige interface implementeren door het deelvenster als onderdeel van een nieuwe status op te nemen. De nieuwe status komt voort uit de basisstatus wanneer het object DRMAuthenticateEvent wordt gegenereerd. In het volgende voorbeeld ziet u een VideoDisplay-object met een bronkenmerk dat naar een beveiligd FLV-bestand wijst. In dit geval wordt de methode
credentials()
gewijzigd, zodat ook de toepassing naar de basisstatus wordt geretourneerd. Dit wordt gedaan door deze methode nadat de verificatiegegevens van de gebruiker zijn doorgegeven en de TextInput-objectwaarden opnieuw zijn ingesteld.
<?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>