我正在尝试使用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>");
答案 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)
答案 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”