本分步指南演示了如何在服务器端代码中确定客户机浏览器类型而不使用 ASP.NET 中的
BrowserType 对象。
在传统的 Microsoft Active Server Page (ASP) 中,确定客户机浏览器类型的两个最常用的方法是使用
BrowserType 组件或
Request.ServerVariables("HTTP_USER_AGENT") 变量。 虽然在 ASP.NET 中可以使用这些方法,但是也可以使用 ASP.NET 提供的新属性。 在 ASP.NET 中,
request 对象包含一个名为
Browser 的属性,该属性包含大量与客户机浏览器功能有关的信息,如浏览器名称、浏览器版本以及是否支持 JavaScript、ActiveX 控件、Cookie 和框架。
备注: 本文假定您已在计算机上安装了 ASP.NET 和 Visual Studio .NET。
使用 HTTP_USER_AGENT 标题确定浏览器版本
在 ASP.NET 中,可以访问
Request.ServerVariables 集合或使用新的
Request.UserAgent 属性来检索 HTTP_USER_AGENT 标题值。 可以分析该字符串以确定浏览器名称、浏览器的主版本和次版本以及浏览器是否为 Beta 版本。
以下列表包含两个示例用户代理字符串:
|
当使用 Microsoft Internet Explorer 6.0 Beta 进行浏览时,您可能会收到类似下面的用户代理字符串:
User Agent :: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1; .NET CLR 1.0.2914) |
|
当使用 Internet Explorer 5.5 进行浏览时,您可能会收到下面的用户代理字符串:
User Agent :: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) |
有关分析 User Agent 变量的其他信息,请单击下列文章编号,查看相应的 Microsoft 知识库文章:
272413 (http://support.microsoft.com/kb/272413/EN-US/) HOWTO:Determine Browser Type in Server-Side Script Without the BrowserType Object(HOWTO:在服务器端脚本中确定浏览器类型而不使用 BrowserType 对象)
使用 Request.Browser 对象确定浏览器版本
在 ASP.NET 中,
request 对象包含一个名为
Browser 的属性,该属性返回一个类型为
HttpBrowserCapabilities 的对象。 此对象包含可用于确定客户机浏览器类型的属性,如浏览器、版本、主版本和次版本。
按照下列步骤使用 Visual Basic .NET创建一个简单的 ASP.NET 应用程序,该程序以 HTML 形式将浏览器名称和版本写回到客户机浏览器中:
| 1. |
在开始菜单上,依次指向程序、microsoft Visual Studio.NET,然后单击 Microsoft Visual Studio.NET。 |
| 2. |
单击新建项目。 |
| 3. |
在新建项目对话框的项目类型下面,单击 Visual Basic 项目。 在模板下面,单击 ASP.NET Web 应用程序。 在名称文本框中,键入应用程序的名称。 |
| 4. |
在 Webform1 的“设计”窗口中双击。 |
| 5. |
在“源”窗口中,按 CTRL+A 组合键或者使用鼠标选择代码隐藏窗口中的所有代码。 |
| 6. |
复制并粘贴以下代码: Public Class WebForm1
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer.
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
Response.Write("user Agent :: " & Request.UserAgent & " ")
Response.Write("browser :: " & Request.Browser.Browser & " ")
Response.Write("version :: " & Request.Browser.Version & " ")
Response.Write("major:: " & Request.Browser.MajorVersion() & " ")
Response.Write("minor:: " & Request.Browser.MinorVersion() & " ")
End Sub
End Class |
| 7. |
按 CTRL+S 组合键保存该文件。 |
| 8. |
在生成菜单上,单击生成。 |
| 9. |
在生成完成后,单击开始,或者在解决方案资源管理器中右键单击 Webform1.aspx,然后单击在浏览器中查看。 |
| 10. |
您会发现在浏览器窗口中出现了 User Agent 字符串并包含浏览器名称、版本、主版本和次版本。 |
参考
有关其他信息,请单击下面的文章编号,以便查看 Microsoft 知识库中的文章:
272413 (http://support.microsoft.com/kb/272413/EN-US/) HOWTO:Determine Browser Type in Server-Side Script Without the BrowserType Object(HOWTO:在服务器端脚本中确定浏览器类型而不使用 BrowserType 对象)
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、