Базовая http-авторизация в air-приложениях

Бесцельное чтение блогов прервалось вполне осмысленным методом организации базовой 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

Скажите и вы что-нибудь

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2008, Adobe — наш верный друг. Все права защищены.
Работает под управлением WordPress и темы GimpStyle, созданной Horacio Bella.
RSS-фид сообщений | RSS-фид комментариев | Валидный XHTML- и CSS-код.