如何:在 ASP.NET 网页中检测浏览器类型

更新:2007 年 11 月

不同的浏览器和相同浏览器的不同版本支持不同的功能。在应用程序中,您可能需要确定用户正在使用哪种类型的浏览器查看页,并且可能需要确定该浏览器是否支持某些特定功能。

3yekbd5b.alert_note(zh-cn,VS.90).gif说明:

ASP.NET 可以自动确定浏览器功能,并使用此信息为 ASP.NET 服务器控件呈现适当的 HTML 标记。有关详细信息,请参见 ASP.NET 服务器控件和浏览器功能

在 ASP.NET 页中检测浏览器类型

  • 查询 Browser 属性,该属性包含一个 HttpBrowserCapabilities 对象。在 HTTP 请求过程中,该对象会从浏览器或客户端设备中获取信息,以便让您的应用程序知道浏览器或客户端设备提供的支持类型和级别。该对象随后使用强类型属性和泛型名称值字典公开有关浏览器功能的信息。

    下面的代码示例演示如何在页上的文本框中显示浏览器信息。

    3yekbd5b.alert_note(zh-cn,VS.90).gif说明:

    HttpBrowserCapabilities 对象所公开的属性指示浏览器的内在功能,但不一定反映出当前的浏览器设置。例如,Cookies 属性指示浏览器是否内在地支持 Cookie,但不指示发出请求的浏览器是否已启用了 Cookie。有关更多信息,请参见 ASP.NET Cookie 概述

    Private Sub Button1_Click(ByVal sender As System.Object, _
           ByVal e As System.EventArgs) Handles Button1.Click
        Dim s As String = ""
        With Request.Browser
            s &= "Browser Capabilities" & vbCrLf
            s &= "Type = " & .Type & vbCrLf
            s &= "Name = " & .Browser & vbCrLf
            s &= "Version = " & .Version & vbCrLf
            s &= "Major Version = " & .MajorVersion & vbCrLf
            s &= "Minor Version = " & .MinorVersion & vbCrLf
            s &= "Platform = " & .Platform & vbCrLf
            s &= "Is Beta = " & .Beta & vbCrLf
            s &= "Is Crawler = " & .Crawler & vbCrLf
            s &= "Is AOL = " & .AOL & vbCrLf
            s &= "Is Win16 = " & .Win16 & vbCrLf
            s &= "Is Win32 = " & .Win32 & vbCrLf
            s &= "Supports Frames = " & .Frames & vbCrLf
            s &= "Supports Tables = " & .Tables & vbCrLf
            s &= "Supports Cookies = " & .Cookies & vbCrLf
            s &= "Supports VBScript = " & .VBScript & vbCrLf
            s &= "Supports JavaScript = " & _
                .EcmaScriptVersion.ToString() & vbCrLf
            s &= "Supports Java Applets = " & .JavaApplets & vbCrLf
            s &= "Supports ActiveX Controls = " & .ActiveXControls & _
                vbCrLf
        End With
        TextBox1.Text = s
    End Sub
    
    private void Button1_Click(object sender, System.EventArgs e)
    {
        System.Web.HttpBrowserCapabilities browser = Request.Browser;
        string s = "Browser Capabilities\n"
            + "Type = "                    + browser.Type + "\n"
            + "Name = "                    + browser.Browser + "\n"
            + "Version = "                 + browser.Version + "\n"
            + "Major Version = "           + browser.MajorVersion + "\n"
            + "Minor Version = "           + browser.MinorVersion + "\n"
            + "Platform = "                + browser.Platform + "\n"
            + "Is Beta = "                 + browser.Beta + "\n"
            + "Is Crawler = "              + browser.Crawler + "\n"
            + "Is AOL = "                  + browser.AOL + "\n"
            + "Is Win16 = "                + browser.Win16 + "\n"
            + "Is Win32 = "                + browser.Win32 + "\n"
            + "Supports Frames = "         + browser.Frames + "\n"
            + "Supports Tables = "         + browser.Tables + "\n"
            + "Supports Cookies = "        + browser.Cookies + "\n"
            + "Supports VBScript = "       + browser.VBScript + "\n"
            + "Supports JavaScript = "     + 
                browser.EcmaScriptVersion.ToString() + "\n"
            + "Supports Java Applets = "   + browser.JavaApplets + "\n"
            + "Supports ActiveX Controls = " + browser.ActiveXControls 
                  + "\n";
        TextBox1.Text = s;
    }
    

请参见

概念

ASP.NET Web 服务器控件和浏览器功能