ASP.NET - как определить пользователя MAC - PullRequest
2 голосов
/ 15 марта 2012

Я пытаюсь определить пользователя MAC, используя c #. Я использовал следующий код, но он всегда говорит «неизвестно», когда пользователь 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 ]

4 голосов
/ 15 марта 2012

Вы можете извлечь информацию об ОС из Request.UserAgent.

Строки агента пользователя Macintosh имеют следующую форму:

"Mozilla / 5.0 (Macintosh; U; Intel Mac OS X10_5_6; ru-ru) 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");
}
2 голосов
/ 15 марта 2012

вы можете использовать Request.UserAgent, он вернет что-то вроде этого: "Mozilla / 5.0 (Windows; U; Windows NT 5.1; da; rv: 1.8.1.13) Gecko / 20080311 Firefox / 2.0.0.13" .. тогда вынужно будет извлечь ОС

0 голосов
/ 08 июля 2014

Вы должны использовать родные ограничения браузера ASP.NET и просто расширять их.

Что вы делаете, просто создаете App_Browsers / BrowserFile.browser файл в вашем приложении ASP.NET.

И добавьте это в файл:

<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"

0 голосов
/ 15 марта 2012

Это может помочь вам

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

...