- - PR -
Request.UserAgentについて
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-04-21 16:26
Request.UserAgentについてご教授お願いします。
今、ダウンロード処理にてダイアログが2回表示するという問題を解決するため、 Response.AddHeaderのContent-Dispositionをinlineにしました。 そうすると、win2000、winXP-SP1では正常に動作したのですが、 winXP-SP2では、フレームに表示してしまします。 winXP-SP2では、Content-Dispositionをattachmentで正常に動作するので、 OSが何か判断して振分けようと考えました。 で、Request.UserAgentにてブラウザ情報を取得して行おうと思います。 今のところ取得内容が win2000 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) winXP-SP1 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) winXP-SP2 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) になっていました。 自分なりに調べたところでは"MSIE 6.0"はIEのバージョン、 .NET以下はフレームワークのバージョン まではわかりました。 上記取得情報から仮定すれば win2000 ⇒ Windows NT 5.0 winXP-SP1 ⇒ Windows NT 5.1 winXP-SP2 ⇒ Windows NT 5.1;SV1 と考えているのですが、 この仮定は正しいでしょうか? | ||||||||
|
投稿日時: 2006-04-21 16:46
とりあえず、簡単に。
UserAgentはブラウザが『勝手に』送っているものなので、必ずしもその値を送っているとは限りません。 現にOperaや一部タブブラウザなどでは変更可能ですし、その値からOSの種類を判別するのはよろしくありません。 なので
に対しての回答は「正しくない場合が多いので、止めたほうが無難です」となります。 少なくとも自分ならばこのような回りくどい方法は使わず、元のダウンロード処理にて対処しようと考えます。 | ||||||||
|
投稿日時: 2006-04-21 17:07
ぼび王子ありがとうございます。
ん〜どうしたらよいでしょう。 postをgetに変えると良いらしいのですが、 現状postでシステムが確立されているもので、 容易に変更できないのです。 元々、ダウンロード用のformを作成して別画面にて 起動していたんですが、OS、IEのバージョンによって 動作が違い、対応しようとしているのですが。。。。 もう少し頑張ってみます。 | ||||||||
|
投稿日時: 2006-04-21 17:11
ちなみにブラウザはIEと限定しています。
それでも仮定は正しくないのでしょうか? | ||||||||
|
投稿日時: 2006-04-21 18:22
とりあえず、落ち着いて。
この問題は「正しい」か「正しくない」のどちらかで片付けられる簡単な問題ではないと思います。 IEだからこういったUserAgentを返すはず、というのはあくまで仮定でしかないですし、間にプロキシサーバをはさんだりすることでUserAgentが変更される可能性(これもあくまで可能性ですが)もあると思います。 元々の問題は「ダウンロードダイアログが2回表示される」ということですよね。そこからattachmentをinlineにしたり、いろいろと試行錯誤した結果UserAgentにたどり着いたのだと思いますが、これはまた別の話なのではないかと。 ダウンロードの話はまた別になりますので、元スレの方に書こうと思います。 [蛇足] 偉そうなことを言っていますが、実は私も同じ現象に遭遇した記憶がありますそのときは特に問題にならなかったのと、そういう仕様ですと言い張って逃げました(※良くない例です)。 [/蛇足] #そうそう、ハンドル名は固有名詞なのでできれば気をつけて書いていただけるとありがたいです。敬称もあるとうれしいかも。 | ||||||||
|
投稿日時: 2006-04-23 00:04
UserAgent でレンダーされる HTML をブラウザごとに変えるぐらいなら やってもいいかなーというのが僕の意見なんですけどどうでしょう モバイル用のページなんかだと常套手段ですよね。 もっとも新しいブラウザなんかも出てくるのでそれの対応ができるように 作りこんだり修正する必要はあると思いますけどね
IE6に限定すれば正しいのかな | ||||||||
|
投稿日時: 2006-04-24 09:34
ぼび王子、かるあ さんありがとうございます。
とりあえずもう少し考えてみます。 最低手段として、この方法で行おうと思います。 ありがとうございました。 | ||||||||
|
投稿日時: 2006-04-24 10:34
そうですね。UserAgent ごとに振り分ける必要性があって、それに対するメリットとデメリットを把握していれば大丈夫かも、とは思います。 今回の場合はダウンロード時の不具合に対する逃げの手段のように感じられたので「止めたほうが無難です」と書いてみました。 #「なんだかわからないがこれを外すとバグるので外すな」と書いてあるコメントみたいでなんかね とりあえずnabeさんも最低(最終?)手段と書いていらっしゃいますので、考えていただくとして僕はこれぐらいで。 #しかしまだ名前が間違えられている気がする orz |