c# - Request.UserAgent 和 Request.Browser 有什么区别?

标签 c# asp.net request user-agent

下面是我的代码:

    User_Info.Add(!string.IsNullOrEmpty(Request.UserAgent) ? Request.UserAgent : string.Empty);//4:UserAgent

    HttpBrowserCapabilities browser = Request.Browser;
    User_Info.Add(!string.IsNullOrEmpty(browser.Browser) ?  "Name : " + browser.Browser + " | " +
                                                            "Type : " + browser.Type + " | " +
                                                            "MajorVersion  : " + browser.MajorVersion + " | " +
                                                            "MinorVersion  : " + browser.MinorVersion : string.Empty);//5:UserBrowser

Request.UserAgent 和 Request.Browser 有什么区别?
我无法理解那些 UserAgent 字符串!
你能举一些例子和解释吗?

最佳答案

UserAgent给你一个关于浏览器的原始字符串。它可能看起来像这样:

User Agent :: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1; .NET CLR 1.0.2914)

Request.Browser将为您提供 HttpBrowserCapabilities 对象,该对象将包含浏览器版本信息以及有关浏览器功能的一些额外信息。例如:

  1. 浏览器是否支持框架
  2. 是否支持 cookie?
  3. 支持 JavaScript?
  4. 支持 Java 小程序?等

看下面的示例代码:

HttpBrowserCapabilities bc = Request.Browser;
Response.Write("<p>Browser Capabilities:</p>");
Response.Write("Type = " + bc.Type + "<br>");
Response.Write("Name = " + bc.Browser + "<br>");
Response.Write("Version = " + bc.Version + "<br>");
Response.Write("Major Version = " + bc.MajorVersion + "<br>");
Response.Write("Minor Version = " + bc.MinorVersion + "<br>");
Response.Write("Platform = " + bc.Platform + "<br>");
Response.Write("Is Beta = " + bc.Beta + "<br>");
Response.Write("Is Crawler = " + bc.Crawler + "<br>");
Response.Write("Is AOL = " + bc.AOL + "<br>");
Response.Write("Is Win16 = " + bc.Win16 + "<br>");
Response.Write("Is Win32 = " + bc.Win32 + "<br>");
Response.Write("Supports Frames = " + bc.Frames + "<br>");
Response.Write("Supports Tables = " + bc.Tables + "<br>");
Response.Write("Supports Cookies = " + bc.Cookies + "<br>");
Response.Write("Supports VB Script = " + bc.VBScript + "<br>");
Response.Write("Supports JavaScript = " + bc.JavaScript + "<br>");
Response.Write("Supports Java Applets = " + bc.JavaApplets + "<br>");
Response.Write("Supports ActiveX Controls = " + bc.ActiveXControls + "<br>");
Response.Write("CDF = " + bc.CDF + "<br>");

要将浏览器版本与用户代理进行比较,您必须使用字符串操作(包含),而在 Request.Browser 的情况下,您可以与属性进行比较。

关于c# - Request.UserAgent 和 Request.Browser 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10780418/

相关文章:

node.js - 使用 request 和 Cheerio 模块延迟请求

c# - 从中继器 Asp.net C# 之外的代码隐藏访问 div

c# - 在更改密码页面上重定向用户和 "block"他

ASP.NET MVC 相当于 ASP.NET WebForms 中的 "override void Render"

asp.net - 适合使用 SQL Server 开发基于浏览器的数据库应用程序(报告)的平台?

java - 从java客户端发布到Django表单与curl -d

node.js - 为什么 nodejs express post 请求中 'body' 为空?

c# - Specflow 无法与 VS 2012 一起正常工作

c# - 如何在DataTable过滤器表达式中使用EXISTS?

c# - 正则表达式匹配部分或整个单词