
以前、こんなことを書きましたが、やっとこさ解決。
問題の起こっているアプリは、ブラウザで複数画面を開いて、
それぞれでFlexアプリを動作させる形態なのですが、
ユーザーがログインした際、
それぞれのウィンドウでログインステータスの同期を取る為に
(一方でログイン、もう一方はログアウト、…なんて事を避けるため)
activateイベントをトリガーに
ログインチェックを行うように設定していました。
このactivateイベントは、
Flexアプリの動くブラウザウィンドウが
アクティブになった際にdispatchされるイベントです。
ログイン状況はSharedObjectで管理していた為
画面をアクティブにする度に
SharedObjectに対するアクセスが発生していましたが、
これはFlash的には
「ユーザー操作が無いのにFlexアプリが勝手に
ファイルにアクセスした。不正な操作だ!!」
と解釈することも出来るわけです。
おそらくはVistaから厳しくなったセキュリティチェックが
過剰反応した結果として、
エラーが通知されたんじゃないかなぁ、
と想像しています。
とりあえずまとめとしては
― 原因 ―
ユーザー操作を伴わずに
SharedObjectに対してアクセスを行う
― 対策 ―
SharedObjectを使う時には
activateイベントをトリガーに使っちゃダメ
って感じでしょうか。
実はちょっと気になることがあって、
このログインチェック処理では
Cookieに対するアクセスも行っているので
もしかしたらCookieアクセスを怒られたのかもなぁ、
とかちょっと考えたりもしています。
…ま、解決したからいいか。
※)2008/06/26 追記
SharedObjectとCookie、どちらか片方が、では無くて
両方とも原因みたいです。
それぞれ別々にテストしてみたら、両方とも再現できました。
ただ、ユーザー操作が伴わなくても
タイマーイベントをトリガーにアクセスする分には
別にエラーにはなんないんですけど、
activateイベントの時にはなぜかエラーが発生します。
この違いはなんなんでしょ?
ヨウイチ
問題の起こっているアプリは、ブラウザで複数画面を開いて、
それぞれでFlexアプリを動作させる形態なのですが、
ユーザーがログインした際、
それぞれのウィンドウでログインステータスの同期を取る為に
(一方でログイン、もう一方はログアウト、…なんて事を避けるため)
activateイベントをトリガーに
ログインチェックを行うように設定していました。
このactivateイベントは、
Flexアプリの動くブラウザウィンドウが
アクティブになった際にdispatchされるイベントです。
ログイン状況はSharedObjectで管理していた為
画面をアクティブにする度に
SharedObjectに対するアクセスが発生していましたが、
これはFlash的には
「ユーザー操作が無いのにFlexアプリが勝手に
ファイルにアクセスした。不正な操作だ!!」
と解釈することも出来るわけです。
おそらくはVistaから厳しくなったセキュリティチェックが
過剰反応した結果として、
エラーが通知されたんじゃないかなぁ、
と想像しています。
とりあえずまとめとしては
― 原因 ―
ユーザー操作を伴わずに
SharedObjectに対してアクセスを行う
― 対策 ―
SharedObjectを使う時には
activateイベントをトリガーに使っちゃダメ
って感じでしょうか。
実はちょっと気になることがあって、
このログインチェック処理では
Cookieに対するアクセスも行っているので
もしかしたらCookieアクセスを怒られたのかもなぁ、
とかちょっと考えたりもしています。
…ま、解決したからいいか。
※)2008/06/26 追記
SharedObjectとCookie、どちらか片方が、では無くて
両方とも原因みたいです。
それぞれ別々にテストしてみたら、両方とも再現できました。
ただ、ユーザー操作が伴わなくても
タイマーイベントをトリガーにアクセスする分には
別にエラーにはなんないんですけど、
activateイベントの時にはなぜかエラーが発生します。
この違いはなんなんでしょ?
ヨウイチ


スポンサーサイト

| ホーム |