RIAトピックス
リッチクライアント/RIAを主テーマに取り扱います。Flex、Ajax、AIR、Silverlight、JavaFX、etc。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VistaのIE7だと2134エラーでSharedObjectが使えない問題がやっと解決!
以前、こんなことを書きましたが、やっとこさ解決。


問題の起こっているアプリは、ブラウザで複数画面を開いて、
それぞれでFlexアプリを動作させる形態なのですが、
ユーザーがログインした際、
それぞれのウィンドウでログインステータスの同期を取る為に
(一方でログイン、もう一方はログアウト、…なんて事を避けるため)
activateイベントをトリガーに
ログインチェックを行うように設定していました。

このactivateイベントは、
Flexアプリの動くブラウザウィンドウが
アクティブになった際にdispatchされるイベントです。

ログイン状況はSharedObjectで管理していた為
画面をアクティブにする度に
SharedObjectに対するアクセスが発生していましたが、
これはFlash的には
ユーザー操作が無いのにFlexアプリが勝手に
 ファイルにアクセスした。不正な操作だ!!

と解釈することも出来るわけです。

おそらくはVistaから厳しくなったセキュリティチェックが
過剰反応した結果として、
エラーが通知されたんじゃないかなぁ、
と想像しています。


とりあえずまとめとしては

 ― 原因 ―
ユーザー操作を伴わずに
SharedObjectに対してアクセスを行う
 ― 対策 ―
SharedObjectを使う時には
activateイベントをトリガーに使っちゃダメ

って感じでしょうか。


実はちょっと気になることがあって、
このログインチェック処理では
Cookieに対するアクセスも行っているので
もしかしたらCookieアクセスを怒られたのかもなぁ、
とかちょっと考えたりもしています。

…ま、解決したからいいか。


※)2008/06/26 追記
SharedObjectとCookie、どちらか片方が、では無くて
両方とも原因みたいです。
それぞれ別々にテストしてみたら、両方とも再現できました。

ただ、ユーザー操作が伴わなくても
タイマーイベントをトリガーにアクセスする分には
別にエラーにはなんないんですけど、
activateイベントの時にはなぜかエラーが発生します。
この違いはなんなんでしょ?




ヨウイチ
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

copyright © 2005 RIAトピックス all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。