Базовая http-авторизация в air-приложениях
Опубликовал Андрей "авиатор" Алексеев — Понедельник, 10 августа, 2009 — 02:00Бесцельное чтение блогов прервалось вполне осмысленным методом организации базовой http-авторизации для flex/air-приложений, найденным в блоге Даниэля МакКея.
Поскольку задача интересная, то и решение – как водится – не очень изящное, но, что главное, работоспособное. Даниэль жалуется, что он испробовал два as3-проекта, заточенных для клиентских http-вызовов, но…
Так вот, Даниэль предложил вот что: посылать авторизационный заголовок в Request Header, но зашитый в base64:
# import mx.utils.Base64Encoder; # var loader:URLLoader = new URLLoader(); var req:URLRequest = new URLRequest(cURL); var headerRequests:Array = new Array(1); req.method="get"; var headerRequests:Array = new Array(1); var encoder64:Base64Encoder = new Base64Encoder(); encoder64.encode(cUsername + ":" + cPassword); var credentials:String = encoder64.toString(); headerRequests[0] = new URLRequestHeader("Authorization", "Basic " + credentials); req.requestHeaders = headerRequests;
После чего, при правильных логине/пароле вы не увидите никаких угрюмых диалогов, однако, чтобы вообще ничего не портило вам неописуемую красоту вашего air-приложения, то…
req.authenticate=false
Ещё одним важным пунктом является проверка доступности конкретного URL. Делается это вот как:
# loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS,onStatus); loader.addEventListener(Event.COMPLETE,onComplete); loader.addEventListener(IOErrorEvent.IO_ERROR,onError); # private function onStatus(event:HTTPStatusEvent):void { Alert.show(event.status.toString()); } private function onComplete(event:Event):void { Alert.show(event.target.data); } private function onError(event:IOErrorEvent):void { Alert.show(event.text); }
Вот теперь спасибо тебе, Даниэль!
Пока без комментариев »
RSS для комментариев. TrackBack URI
Скажите и вы что-нибудь
© 2008, Adobe — наш верный друг. Все права защищены.
Работает под управлением WordPress и темы GimpStyle, созданной Horacio Bella.
RSS-фид сообщений | RSS-фид комментариев | Валидный XHTML- и CSS-код.
