Basic認証のかかったエリアにデータを投げたり、取得したり、ということがある。整理したかったので確認。
Basic認証を越える方法http://blog.nipx.jp/archives/3167を参考にした。
同じドメイン内からの接続はスムーズに行ったのだけれども、別ドメインからの読み込みではとまどった。結局、crossdomain.xmlに次の行が必要だった。
1 |
<allow-http-request-headers-from domain="*.wonderfl.net" headers="Authorization" /> |
◆同じドメインからPOST/GET
◆別ドメインからPOST/GET
Basic認証を越える方法 - wonderfl build flash online
◆IE(Edge)の問題
IE(Edge)では「http(s)://username:password@server/resource.ext」の書式がサポートされないので、今回の方法ではGETができない。
◆Visual StudioのWebBrowserコンポーネントの問題
Visual StudioのWebBrowserコンポーネントからはGETはできたが、POSTができなかった。
ただ、この確認は別なテスト用に作ったアプリだったので、何らかの設定を行えば、POSTができるかもしれない。
また、Shockwave Flash Objectコンポーネントでの動作確認はしていない。
◆詳細未検証今後の課題メモ
http://id@pw:www.mztm.jp:80/
のように、ポート番号の指定と一緒にするとうまくいかなかった。
◆ファイル一式
https://github.com/umhr/BasicAuthentication
◆参考
http://blog.nipx.jp/archives/3167
http://www.flash-jp.com/modules/newbb/viewtopic.php?topic_id=605&forum=7&post_id=6065
http://www.senocular.com/pub/adobe/crossdomain/policyfiles.html
◆おまけ
1 2 3 4 5 6 7 8 9 10 |
//BulkLoaderを使うときはこんな感じで。 // Base64はas3crypto.swcを使う。 var id:String = "id"; var pw:String = "password"; var headers:Array/*URLRequestHeader*/ = []; headers.push(new URLRequestHeader("Authorization", "Basic " + Base64.encode(id+":"+pw)) ); _bulkLoader.addEventListener(BulkLoader.COMPLETE, bulkLoader_complete); _bulkLoader.add("http://mztm.jp/hoge.txt", { "id":"hoge", "headers":headers } ); _bulkLoader.start(); |