トップ回答者
AsyncFileUploadコントロールでのHTTPSについて

質問
-
[ASP.NET AJAX]AsyncFileUploadコントロールを使用してファイルをアップロードするWEB画面を作成しています。
HTTPでのテストでは問題はないのですが、HTTPSにすると
「このページにはセキュリティで保護されている項目と保護されていない項目が含まれます。保護されていない項目を表示しますか?」の
メッセージボックスが表示されます。
メッセージボックスで「はい」、「いいえ」の選択が可能で「いいえ」を選択したとしてもファイルは正常にアップロードすることは可能です。
しかし、なぜこのメッセージボックスが表示されるかがわかりません。
ASPXにAsyncFileUploadコントロールだけ配置した場合でも同様の現象が発生します。(UploadedCompleteが呼び出された時点でメッセージが表示されているようです。)
すみませんが何が問題なのか教えて下さい。
WEBの環境、開発環境は以下の通りです。
・IIS:IIS7.0
・AP Server : Windows2008 Server
・DB Server : SQL Server2008
・IE : IE6.0 + SP3
・Visual Studio 2008(C#)
よろしくお願い致します。
回答
-
AsyncFileUpload Demonstrationでも発生するのなら、AsyncFileUploadの仕様ということでしょう。
ソースコードのAsyncFileUpload.pre.jsを見てみたところ、バックグラウンドでアップロードを行うための手段としてiframeを使用してabout:blankページを開いています。これによりKB261188の問題が発生してしまっているのではないでしょうか?
この手の処理を行う際にiframeを使うのはよくあることで、その際、about:blankでは今回のような問題が発生してしまうため、フレームワーク側でblank.htmlを持たせておくのが常套手段かと思っていましたが、そのようになっていないのですね。
# ちなみにThe dojo toolkitの場合、dojo/resources/blank.htmlが用意されていたりするんですが。類似でblank.gifとかも。 -
佐祐理さんがおっしゃっているように、AjaxControlToolkitのソースに手を入れて、CodePlexで変更を取り込んでもらうのが一番確実ですが、Javascript側の修正で行けそうなら、こんな方法もあると思います。
AjaxControlToolkit の CalendarExtender のカレンダーを日本語表記にする
すべての返信
-
同一内容のようなので相互にリンクしておきます。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=62958
質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。 -
以下リンク先から引用します。
-- 引用ここから
ページ自体が「https:/」から始まるため、内包されている画像やメニュー項目なども全て「https:/」から始まっている必要がある。だが、画像やメニューが「http:/」から始まるフルパスのURLで記述されている場合、SSLページでもSSL経由ではない画像やメニューを呼び出すことになる。要するにこのページは「http」と「https」の両方を利用したページということになる。
この時に先ほどの、「このページにはセキュリティで保護されている項目と保護されていない項目が含まれています。保護されていない項目を表示しますか?」という内容の「セキュリティ」に関する警告メッセージが頻繁に表示される。
-- 引用ここまで
Blog:プログラマーな日々 http://d.hatena.ne.jp/JHashimoto/ -
J.Hashimoto さん
回答ありがとうございます。
「このページにはセキュリティで保護されている項目と保護されていない項目が含まれています。保護されていない項目を表示しますか?」のメッセージは
一般的にHTTPからイメージファイルやスタイルシートのファイルをリンクしている時に表示されることは理解しております。
但し、今回はまっさらな画面(まっさらなアプリケーション)で[ASP.NET AJAX]AsyncFileUploadコントロールを使用した場合にもメッセージが表示されれます。
(イメージファイルやスタイルシートは意図的に参照しておりません。)
[ASP.NET AJAX]AsyncFileUploadコントロール側に何かあるのではないかと思っているのですが...。
お気づきの点がありましたらご連絡下さい。
よろしくお願い致します。
-
AsyncFileUpload Demonstrationでも発生するのなら、AsyncFileUploadの仕様ということでしょう。
ソースコードのAsyncFileUpload.pre.jsを見てみたところ、バックグラウンドでアップロードを行うための手段としてiframeを使用してabout:blankページを開いています。これによりKB261188の問題が発生してしまっているのではないでしょうか?
この手の処理を行う際にiframeを使うのはよくあることで、その際、about:blankでは今回のような問題が発生してしまうため、フレームワーク側でblank.htmlを持たせておくのが常套手段かと思っていましたが、そのようになっていないのですね。
# ちなみにThe dojo toolkitの場合、dojo/resources/blank.htmlが用意されていたりするんですが。類似でblank.gifとかも。 -
佐祐理さん
回答ありがとうございます。
指摘頂いたソースコードを確認すると確かにiframeを使用していますのでKB261188の問題の可能性が高いですね。
修正方法ですが「AsyncFileUpload.pre.js」を直接修正できればよいのですがAsyncFileUploadはdllで提供されている為
修正することは難しいと考えています。
何か良い修正方法がありますでしょうか?
それとも仕様なのであきらめるしかないのでしょうか?
すみませんが良い案がありましたら教えて下さい。
よろしくお願い致します。
-
佐祐理さんがおっしゃっているように、AjaxControlToolkitのソースに手を入れて、CodePlexで変更を取り込んでもらうのが一番確実ですが、Javascript側の修正で行けそうなら、こんな方法もあると思います。
AjaxControlToolkit の CalendarExtender のカレンダーを日本語表記にする