ASP.NET - 如何检测MAC用户

时间:2012-03-15 11:06:16

标签: c# asp.net user-agent

我正在尝试使用c#检测MAC用户。我使用了以下代码,但是当mac用户导航到我的网站时,它总是显示未知。它适用于Windows用户,但不适用于MAC或其他任何东西。有没有人有任何想法如何接受mac用户?

由于

    HttpBrowserCapabilities moo = HttpContext.Current.Request.Browser;

    StringBuilder sb = new StringBuilder();

    sb.Append("<p>Browser Capabilities:</p>");
    sb.Append("Type = " + moo.Type + "<br>");
    sb.Append("Name = " + moo.Browser + "<br>");
    sb.Append("Version = " + moo.Version + "<br>");
    sb.Append("Major Version = " + moo.MajorVersion + "<br>");
    sb.Append("Minor Version = " + moo.MinorVersion + "<br>");
    sb.Append("Platform = " + moo.Platform + "<br>");
    sb.Append("Is Beta = " + moo.Beta + "<br>");
    sb.Append("Is Crawler = " + moo.Crawler + "<br>");
    sb.Append("Is AOL = " + moo.AOL + "<br>");
    sb.Append("Is Win16 = " + moo.Win16 + "<br>");
    sb.Append("Is Win32 = " + moo.Win32 + "<br>");
    sb.Append("Supports Frames = " + moo.Frames + "<br>");
    sb.Append("Supports Tables = " + moo.Tables + "<br>");
    sb.Append("Supports Cookies = " + moo.Cookies + "<br>");
    sb.Append("Supports VB Script = " + moo.VBScript + "<br>");       
    sb.Append("Supports ActiveX Controls = " + moo.ActiveXControls + "<br>");
    sb.Append("CDF = " + moo.CDF + "<br>");

4 个答案:

答案 0 :(得分:4)

您可以从Request.UserAgent中提取操作系统信息。

Macintosh用户代理字符串采用以下格式:

  

“Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_5_6; en-us)   AppleWebKit / 528.16(KHTML,类似Gecko)版本/ 4.0 Safari / 528.16“

     

“Mozilla / 4.0(兼容; MSIE 5.15; Mac_PowerPC)”

所以你可以这样做:

public bool IsMacOS(string userAgent)
{
    var osInfo = userAgent.Split(new Char[] { '(', ')' })[1];
    return osInfo.Contains("Mac_PowerPC") || osInfo.Contains("Macintosh");
}

答案 1 :(得分:2)

你可以使用Request.UserAgent它将返回如下内容: “Mozilla / 5.0(Windows; U; Windows NT 5.1; da; rv:1.8.1.13)Gecko / 20080311 Firefox / 2.0.0.13”.. 那么你需要提取操作系统

答案 2 :(得分:0)

这可能对您有所帮助

http://www.javascripter.net/faq/operatin.htm

答案 3 :(得分:0)

您应该使用原生ASP.NET浏览器上限并只是扩展它们。

您所做的只是在ASP.NET应用程序中创建 App_Browsers / BrowserFile.browser 文件。

并将其添加到文件中:

<browsers>
  <gateway id="MacOS" parentID="Safari">
    <identification>
      <userAgent match="Intel Mac OS X" />
    </identification>

    <capabilities>
      <capability name="platform" value="MacOS" />
    </capabilities>
  </gateway>
</browsers>

这样做就足以让Browser.Platform返回“MacOS”