0

2 台のマシンで ASP.NET 3.5 アプリをテストしています。1 台は Windows 7 x64 で、もう 1 台は Windows Server 2008 x64 です。

これら 2 台のマシンで同じ Chrome インスタンスを使用して Web サイトを開くとHttpBrowserCapabilities.Browser、Windows 7 マシンでは がbrowser.Name = "appleMac-safari"表示され、Windows Server マシンでは が表示されますbrowser.Name = "applewebkit"

両方のマシンには、asp.netアプリの同一の(AFAIK)インストール、同じmachine.configファイルがあり、*.browserファイルも同じですC:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Browsers

この不一致が発生する理由はありますか?

4

2 に答える 2

1

信頼性が高いため、次を使用してChromeを検出します

if (Request.UserAgent.Contains("Chrome"))
{
    ....
}

UserAgent の値は次のとおりです。

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16
于 2011-04-15T14:20:58.713 に答える
0

ブラウザが送信しているユーザー エージェント文字列を確認します。おそらく、ユーザー エージェント文字列は、これら 2 つのプラットフォームの chrome のそのバージョンで同じではありません。小さな違いがたくさんあります。

また、ほとんどの場合、サーバー側のブラウザー スニッフィングの用途は非常に限られていることも付け加えておきます。これは、ご覧のとおり、特に信頼性が低く、簡単に偽装できるためです。別の方法でスタイルを変更したり、クライアント側の動作を微調整したりしたい場合は、 Modernizrのような JavaScript パッケージを使用して機能検出を行う方が、はるかに堅牢な方法です。

于 2011-04-15T14:23:17.183 に答える