Paket | flash.net |
Klass | public class SecureSocket |
Arv | SecureSocket Socket EventDispatcher Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Stöd för AIR-profiler: Den här funktionen stöds på alla operativsystem för datorer, men inte på alla enheter med AIR for TV. På mobila enheter stöds den i Android och även på iOS med början från AIR 20. Du kan testa stödet vid körning med egenskapen SecureSocket.isSupported
. På sidan om stöd för AIR-profiler hittar du mer information om API-stöd för flera profiler.
SSL- och TLS-protokollen tillhandahåller en mekanism för att hantera båda aspekterna av en säker socket-anslutning:
- Kryptering av data som kommunicerar över socketen
- Autentisering av värdens identitet via dess certifikat
De krypteringsprotokoll som stöds är SSL 3.1 och senare samt TLS 1.0 och senare. (TLS är det protokoll som efterträder SSL. TLS 1.0 är detsamma som SSL 3.1, TLS 1.1 detsamma som SSL 3.2, osv.) SSL version 3.0 eller tidigare stöds inte.
Verifiering av servercertifikatet görs med förtroendearkivet och klientplattformens certifikatverifieringsstöd. Du kan dessutom lägga till egna certifikat programmatiskt med metoden addBinaryChainBuildingCertificate()
. API:t stöds inte i iOS för närvarande. Med det här API:t i iOS genereras ett undantag: ArgumentError: Error #2004
Klassen SecureSocket ansluter endast till servrar med giltiga, tillförlitliga certifikat. Du kan inte välja att ansluta till en server om det finns något problem med dess certifikat. Det finns till exempel inget sätt att ansluta till en server med ett certifikat som upphört. Detsamma gäller för ett certifikat som inte är kopplat till en tillförlitlig förtroendebas. Anslutningen kommer inte att göras även om certifikatet frö övrigt är giltigt.
Klassen SecureSocket är användbar för krypterad kommunikation med en betrodd server. I andra avseenden beter sig ett SecureSocket-objekt på samma sätt som ett vanligt Socket-objekt.
Om du vill använda klassen SecureSocket ska du skapa ett SecureSocket-objekt (new SecureSocket()
). Ställ därefter in dina avlyssnare och kör SecureSocket.connect(host, port)
. När du ansluter till servern, skickar socketen en connect
-händelse. En lyckad anslutning är en anslutning där serverns säkerhetsprotokoll stöds och dess certifikat är giltiga och tillförlitliga. Om det inte går att verifiera certifikatet skickar socketen en IOError
-händelse.
Viktigt! OCSP (Online Certificate Status Protocol) stöds inte på alla operativsystem. Användare kan även inaktivera OCSP-kontroll på enskilda datorer. Om OCSP inte stöds eller är inaktiverat, och ett certifikat inte innehåller den information som behövs för att kontrollera återkallning i en certifikatåterkallningslista (CRL), så kontrolleras inte certifikatåterkallning. Certifikatet accepteras om det är giltigt i övrigt. Detta scenario innebär att en server skulle kunna använda ett återkallat certifikat.
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
bytesAvailable : uint [skrivskyddad]
Antalet databyte som kan läsas i indatabufferten. | Socket | ||
bytesPending : uint [skrivskyddad]
Anger antalet byte som är kvar i skrivbufferten. | Socket | ||
connected : Boolean [skrivskyddad]
Anger om det här Socket-objektet är anslutet. | Socket | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
endian : String
Anger byteordningen för data. | Socket | ||
isSupported : Boolean [statisk] [skrivskyddad]
Anger om säkra socketar stöds på det aktuella systemet. | SecureSocket | ||
localAddress : String [skrivskyddad]
Den IP-adress som den här socketen är bunden till på den lokala datorn. | Socket | ||
localPort : int [skrivskyddad]
Den port som den här socketen är bunden till på den lokala datorn. | Socket | ||
objectEncoding : uint
Styr vilken version av AMF som används när ett objekt skrivs eller läses. | Socket | ||
remoteAddress : String [skrivskyddad]
IP-adressen för den fjärrdator till vilken den här socketen är ansluten. | Socket | ||
remotePort : int [skrivskyddad]
Porten på den fjärrdator till vilken den här socketen är ansluten. | Socket | ||
serverCertificate : X509Certificate [skrivskyddad]
Innehåller X.509-certifikatet som erhålls från serven sedan en säker SSL-/TLS-anslutning är etablerad. | SecureSocket | ||
serverCertificateStatus : String [skrivskyddad]
Returnerar statusvärdet för serverns certifikat. | SecureSocket | ||
timeout : uint
Indikerar antal millisekunder som du behöver vänta för en anslutning. | Socket |
Metod | Definieras med | ||
---|---|---|---|
Skapar ett nytt SecureSocket-objekt. | SecureSocket | ||
Lägger till ett X.509-certifikat till den lokala certifikatskedjan som används i systemet för validering av servercertifikatet. | SecureSocket | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Stänger socketen. | Socket | ||
[åsidosätt]
Ansluter socketen till den angivna värden och porten via SSL eller TLS. | SecureSocket | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Tömmer alla ackumulerade data i socketens utdatabuffert. | Socket | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Läser ett booleskt värde från socketen. | Socket | ||
Läser en byte med tecken från socketen. | Socket | ||
Läser så många databyte som anges av parametern length från socketen. | Socket | ||
Läser ett IEEE 754-flyttal med dubbel precision från socketen. | Socket | ||
Läser ett IEEE 754-flyttal med enkel precision från socketen. | Socket | ||
Läser ett 32-bitars heltal med tecken från socketen. | Socket | ||
Läser en flerbytesträng från byteflödet med den angivna teckenuppsättningen. | Socket | ||
readObject():*
Läser ett objekt från socketen, kodat i serialiserat AMF-format. | Socket | ||
Läser ett 16-bitars heltal med tecken från socketen. | Socket | ||
Läser en byte utan tecken från socketen. | Socket | ||
Läser ett 32-bitars heltal utan tecken från socketen. | Socket | ||
Läser ett 16-bitars heltal utan tecken från socketen. | Socket | ||
Läser en UTF-8-sträng från socketen. | Socket | ||
Läser så många UTF-8-databyte som anges av parametern length från socketen och returnerar en sträng. | Socket | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher | ||
Skriver ett booleskt värde till socketen. | Socket | ||
Skriver en byte till socketen. | Socket | ||
Skriver en sekvens med byte från den angivna bytearrayen. | Socket | ||
Skriver ett IEEE 754-flyttal med dubbel precision till socketen. | Socket | ||
Skriver ett IEEE 754-flyttal med enkel precision till socketen. | Socket | ||
Skriver ett 32-bitars heltal med tecken till socketen. | Socket | ||
Skriver en flerbytesträng från byteflödet med den angivna teckenuppsättningen. | Socket | ||
Skriver ett objekt till socketen i serialiserat AMF-format. | Socket | ||
Skriver ett 16-bitars heltal till socketen. | Socket | ||
Skriver ett 32-bitars heltal utan tecken till socketen. | Socket | ||
Skriver följande data till socketen: ett 16-bitars heltal utan tecken, som anger den angivna UTF-8-strängen i byte, följt av själva strängen. | Socket | ||
Skriver en UTF-8-sträng till socketen. | Socket |
Händelse | Sammanfattning | Definieras med | ||
---|---|---|---|---|
[utsändningshändelse] Skickas när Flash Player eller AIR får operativsystemfokus och blir aktivt. | EventDispatcher | |||
Skickas när servern stänger socketanslutningen. | SecureSocket | |||
Skickas när en nätverksanslutning har upprättats. | SecureSocket | |||
[utsändningshändelse] Skickas när Flash Player eller AIR förlorar operativsystemfokus och blir inaktivt. | EventDispatcher | |||
Skickas om ett in- eller utdatafel orsakar en misslyckad åtgärd för att skicka eller ta emot data. | SecureSocket | |||
Skickas när en socket flyttar data för dess skrivbuffert till nätverkets transportlager. | Socket | |||
Skickas när ett anrop till SecureSocket.connect() misslyckas på grund av en säkerhetsrestriktion. | SecureSocket | |||
Skickas när en socket har tagit emot data. | SecureSocket |
isSupported | egenskap |
isSupported:Boolean
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Anger om säkra socketar stöds på det aktuella systemet.
Säkra socketar stöds inte på alla plattformar. Kontrollera den här egenskapen innan du försöker skapa en SecureSocket-instans.
Implementering
public static function get isSupported():Boolean
serverCertificate | egenskap |
serverCertificate:X509Certificate
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 3 |
Innehåller X.509-certifikatet som erhålls från serven sedan en säker SSL-/TLS-anslutning är etablerad. Om det inte går att upprätta en säker anslutning anges den här egenskapen som null
. Stöds för närvarande inte i iOS och är därför inställt på null
för iOS.
Mer information om X.509-certifikat finns på RFC2459.
Implementering
public function get serverCertificate():X509Certificate
serverCertificateStatus | egenskap |
serverCertificateStatus:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Returnerar statusvärdet för serverns certifikat.
Statusen är CertificateStatus.UNKNOWN
tills socketen försöker ansluta till en server. Efter verifieringen blir statusvärdet en av strängarna som räknas upp i klassen CertificateStatus. Anslutningen skapas bara om certifikatet är giltigt och tillförlitligt. Efter en connect
-händelse är värdet för serverCertificateStatus
därför alltid trusted
.
Obs! När certifikatet har verifierats eller nekats uppdateras inte statusvärdet förrän vid nästa anrop till metoden connect()
. Även om du anropar close()
återställs inte statusvärdet till "unknown".
Implementering
public function get serverCertificateStatus():String
Relaterade API-element
SecureSocket | () | Konstruktor |
public function SecureSocket()
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Skapar ett nytt SecureSocket-objekt.
Kontrollera SecureSocket.isSupported
innan du försöker skapa en SecureSocket-instans. Om SSL 3.0- eller TLS 1.0-socketar inte stöds genereras ett IllegalOperationError.
Utlöser
IllegalOperationError — När SSL 3.0 (och senare) eller TLS 1.0 (och senare) inte stöds.
| |
SecurityError — Lokala otillförlitliga SWF-filer kan inte kommunicera med webben. Du kan undvika problemet genom att omklassificera SWF-filen som lokal med nätverkstjänst eller tillförlitlig.
|
addBinaryChainBuildingCertificate | () | metod |
public function addBinaryChainBuildingCertificate(certificate:ByteArray, trusted:Boolean):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 3 |
Lägger till ett X.509-certifikat till den lokala certifikatskedjan som används i systemet för validering av servercertifikatet. Certifikatet är tillfälligt och varar så länge som sessionen varar.
Servercertifikatsvalideringen förlitar sig på systemets förtroendearkiv för uppbyggnad och validering av certifikatkedjan. Använd den här metoden för att programmera in ytterligare certifikatkedjor och förtroendebaser.
På Mac OS är systemnyckelkedjan standardnyckelkedja under SSL-/TLS-protokollens handskakningsprocess. Alla mellanliggande certifikat i denna nyckelkedja är inkluderade vid uppbyggnad av certifieringskedjan.
Certifikatet som du lägger till med denna API måste vara ett DER-kodat X.509-certifikat. Om parametern trusted
är true, tolkas certifikatet som du lägger till med denna API som en förtroendebas.
Mer information om X.509-certifikat finns på RFC2459.
Parametrar
certificate:ByteArray — Ett ByteArray-objekt som innehåller ett DER-kodat, digitalt X.509-certifikat.
| |
trusted:Boolean — Ange true om du vill ange det här certifikatet som förtroendebas.
|
Utlöser
ArgumentError — När certifikatet inte kan läggas till.
|
connect | () | metod |
override public function connect(host:String, port:int):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Ansluter socketen till den angivna värden och porten via SSL eller TLS.
När metoden SecureSocket.connect()
anropas försöker socketen att göra en SSL-/TLS-handskakning med servern. Om handskakningen lyckas görs ett försök att validera servercertifikatet. Om certifikatet är giltigt och tillförlitligt skapas den säkra socket-anslutningen och socketen skickar en connect
-händelse. Om handskakningen misslyckas eller det inte går att verifiera certifikatet, skickar socketen en IOError
-händelse. Du kan kontrollera resultatet av certifikatvalideringen genom att läsa egenskapen serverCertificateStatus
sedan IOError
-händelsen har skickats. (När en connect
-händelse skickas är certifikatstatusen alltid trusted
.)
Om socketen redan är ansluten stängs den befintliga anslutningen först.
Parametrar
host:String — Namnet eller IP-adressen för den värd till vilken anslutningen ska göras.
| |
port:int — Portnumret för anslutning.
|
Händelser
connect: — Skickas när en nätverksanslutning har upprättats.
| |
ioError: — Skickas om en värdenhet har angetts och ett in- eller utdatafel orsakar att anslutningen misslyckas. Detta omfattar SSL-/TLS-handskakningsfel och fel som beror på att värdserverns certifikat inte kan verifieras.
| |
securityError: — Skickas om ett anrop till Socket.connect() försöker att ansluta antingen till en server som inte har någon socketprincipfil eller till en server vars principfil inte ger den anropande servern tillgång till den angivna porten. Du hittar mer information om principfiler i avsnittet ”Webbplatsinställningar (principfiler)” i Utvecklarhandbok för Adobe ActionScript 3.0 och i avsnittet Security på Flash Player Developer Center.
|
Utlöser
IOError — När du inte anger en värd och anslutningen misslyckas.
| |
SecurityError — När du anger en socket-port som är mindre än noll eller större än 65535.
|
close | Händelse |
flash.events.Event
egenskap Event.type =
flash.events.Event.CLOSE
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Skickas när servern stänger socketanslutningen.
Händelsen close
skickas endast om servern stänger anslutningen; den skickas inte när du anropar metoden Socket.close()
.
Event.CLOSE
-konstanten definierar värdet på type
-egenskapen i ett close
-händelseobjekt.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Det objekt vars anslutning har stängts. |
connect | Händelse |
flash.events.Event
egenskap Event.type =
flash.events.Event.CONNECT
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Skickas när en nätverksanslutning har upprättats.
Event.CONNECT
-konstanten definierar värdet på type
-egenskapen för ett connect
-händelseobjekt.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Det Socket- eller XMLSocket-objektet som har upprättat en nätverksanslutning. |
ioError | Händelse |
flash.events.IOErrorEvent
egenskap IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Skickas om ett in- eller utdatafel orsakar en misslyckad åtgärd för att skicka eller ta emot data.
När ett servercertifikat inte kan verifieras är den händelseavlyssnare som skickas ett IOError. I detta fall kan du kontrollera egenskapen serverCertificateStatus
för att ta reda på orsaken till problemet.
ioError
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
errorID | Ett referensnummer som associeras med det specifika felet (enbart AIR). |
target | Objektet är med om ett in-/utdatafel. |
text | Text som visas som felmeddelande. |
securityError | Händelse |
flash.events.SecurityErrorEvent
egenskap SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Skickas när ett anrop till SecureSocket.connect()
misslyckas på grund av en säkerhetsrestriktion.
En säkerhetsfelhändelse skickas när kod, som körs i Flash Player eller i AIR utanför säkerhetssandlådan application, försöker ansluta till en server på en annan domän eller till en port som är lägre än 1024 och när servern inte tillhandhåller en principfil som tillåter anslutningen. Observera att kod som körs i programsandlådan i AIR kan ansluta till en server på alla domäner och portar under 1024 utan en principfil.
KonstantenSecurityErrorEvent.SECURITY_ERROR
definierar värdet för ett securityError
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Nätverksobjektet rapporterar säkerhetsfelet. |
text | Text som visas som felmeddelande. |
Relaterade API-element
socketData | Händelse |
flash.events.ProgressEvent
egenskap ProgressEvent.type =
flash.events.ProgressEvent.SOCKET_DATA
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 2 |
Skickas när en socket har tagit emot data. Händelser av typen socketData
används inte med egenskapen ProgressEvent.bytesTotal
.
socketData
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Objektet som aktivt bearbetar händelsen. |
bytesLoaded | Antalet objekt eller byte som har lästs in när avlyssnaren bearbetar händelsen. |
bytesTotal | 0; den här egenskapen används inte av socketData -händelseobjekt. |
target | Förloppet för socket-rapportering. |
package { import flash.display.Sprite; import flash.errors.IOError; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.SecureSocket; public class SecureSocketExample extends Sprite { private var secureSocket:SecureSocket = new SecureSocket(); public function SecureSocketExample() { secureSocket.addEventListener( Event.CONNECT, onConnect ) secureSocket.addEventListener( IOErrorEvent.IO_ERROR, onError ); try { secureSocket.connect( "208.77.188.166", 443 ); } catch ( error:Error ) { trace ( error.toString() ); } } private function onConnect( event:Event ):void { trace("Connected."); } private function onError( error:IOErrorEvent ):void { trace( error.text + ", " + secureSocket.serverCertificateStatus ); } } }
Tue Jun 12 2018, 01:40 PM Z