はみ出しRAPTの戯言

- a day after yesterday -

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

コミュニティ リンク

IE8 Beta2 で User-Agent が変更できない問題

IE8 Beta2 で User-Agent が変更できない問題

今更ネタにするものでもないけど、去年の夏に IEβニュースグループに投稿した記事と同じ内容をここにも書いておく。

VC6/VC2003 で Trident コンポーネントを使ったプログラムを作成しているときの話。
プログラム上で User-Agent を変更して接続するために UrlMkSetSessionOption( URLMON_OPTION_USERAGENT ) API を使用しているが、IE8β2 では正常に動作しない。

下記のサンプルコードは IE4 以降の環境では正常に動作するが、IE8 では UrlMkSetSessionOption は正常終了(S_OK) を返すものの効果がない。

void ChangeUserAgentTest()
{
    char lpaUserAgent[ 1024 ] = "test user-agent";
    DWORD dwLength = lstrlenA( lpaUserAgent );
    HRESULT hr = ::UrlMkSetSessionOption( URLMON_OPTION_USERAGENT, lpaUserAgent, dwLength, 0 );
    CString strMsg;
    strMsg.Format( _T( "UrlMkSetSessionOption: 0x%08x" ), hr );
    ::MessageBox( NULL, strMsg, _T( "[debug - 1]" ), MB_OK );
    if ( hr == S_OK ) {
        DWORD dwSize = 1023;
        char lpaString[ 1024 ] = {0};
        hr = ::ObtainUserAgentString( 0, lpaString, &dwSize );
        strMsg.Format( _T( "ObtainUserAgentString: 0x%08x\n%s" ), hr, CString( lpaString ) );
        ::MessageBox( NULL, strMsg, _T( "[debug - 2]" ), MB_OK );
    }
}

最初のメッセージは成功を返す。
---------------------------
[debug - 1]
---------------------------
UrlMkSetSessionOption: 0x00000000
---------------------------
OK
---------------------------

二番目ののメッセージも成功を返す。
---------------------------
[debug - 2]
---------------------------
ObtainUserAgentString: 0x00000000
test user-agent
---------------------------
OK
---------------------------

しかしながら、ウェブサイトにアクセスすると、サーバー変数は下記の値を返す:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0)

IE8 より前では下記の値を返す:
test user-agent

ひょっとしたら IE8 以降で User-Agent を変更するための手順が変更されたのか、とも思ったがバグの可能性が高い。

この API は、urlmon.dll に含まれているため、一般プログラマからは何もできなさげ。
正式版までに解決してくれていることを願うばかり。

投稿日時 : 2009年1月14日 2:21

コメントを追加

# re: IE8 Beta2 で User-Agent が変更できない問題 2009/01/14 12:26 西村誠一

同じ症状(UrlMkSetSessionOptionでUserAgentが変更されない)に困り
検索にてそちらのblogに辿りつきました
(全く同じ症状が、こちらでも発生しておりました
ちなみに本日(1/14)に検索して、
本日投稿のblogトピックが見つかったのはラッキーでした)

正式版迄に是非解決して欲しい問題ですね
(IEのブラウザエンジンを使ったブラウザって多いと思うので
これが直らないとすれば、あちこちで大問題になりそうですね)

IEβニュースグループにも投稿済みとの事ですが、
blog上でも本件に関する続報期待しております

# re: IE8 Beta2 で User-Agent が変更できない問題 2009/01/14 17:45 RAPT

MS のニュースグループに報告したのは 2008/09/16 でしたが、
Windows 7 Beta (6.1.7000) 上の IE8 (8.0.7000.0) では
この問題は修正されているようです。

よかったよかった(^^

# re: IE8 Beta2 で User-Agent が変更できない問題 2009/01/15 0:50 西村誠一

Windows7 Beta上のIE8では修正されているとの情報、
非常に助かります
(私は以前インストールしていたIE8ベータにて
動作確認していました)

非常に参考になりました。ありがとうございます

# re: IE8 Beta2 で User-Agent が変更できない問題 2009/04/07 11:50 kigo

こんにちは。
わたしも同じ問題が発見しました。ただし、私のUser-Agentの変更はHttpAddRequestHeaderで実現していますが、IE7以前のバージョンで問題なくてUser-Agentが正常に変更できます。IE8の正式版でこの問題はまだ解決できていない様子です。
この問題に関する何か最新の情報はありますでしょうか?

#日本語が苦手なので、すみません。

# re: IE8 Beta2 で User-Agent が変更できない問題 2009/04/08 1:28 RAPT

いまさらですが、本件は、IE8 正式版(8.0.6001.187020)では修正されています。

kigo さん>
互換モード(FEATURE_BROWSER_EMULATION)あたりの関連も調べてみるといいかもしれません。
また、Microsoft のニュースグループを確認してみるといいかもしれません。
http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx?dg=microsoft.public.internetexplorer.general&cat=en_us_28cca3eb-7037-4d4f-bde1-d8efee1f1420&lang=en&cr=us

# re: IE8 Beta2 ? User-Agent ????????? 2021/07/08 15:56 what is hydroxychloroquine used to treat

is chloroquine over the counter https://chloroquineorigin.com/# hydrachloroquine

# phixafwqlmxp 2021/12/01 2:51 dwedaykukb

hydroxychloroquine price https://hydroaaralen.com/

# ksznofybznvq 2021/12/04 3:22 dwedayrrqm

plaquenil para que sirve https://aralenquinestrx.com/

# ialkqjbcstwx 2022/05/08 12:43 wffuim

hydroxychloraquine https://keys-chloroquinehydro.com/

# hydroxychloroquine 200 mg 2022/12/28 17:25 MorrisReaks

http://www.hydroxychloroquinex.com/# plaquenil stock price

タイトル
名前
URL
コメント