как определить пользовательскую операционную систему - PullRequest
22 голосов
/ 16 марта 2012

У меня есть следующий код для получения сведений о пользователе:

HttpBrowserCapabilities bc = HttpContext.Current.Request.Browser;
string UserAgent = HttpContext.Current.Request.UserAgent;

ENT_TrackingData ret = new ENT_TrackingData()
{
    IPAddress = HttpContext.Current.Request.UserHostAddress,
    Browser = bc.Browser + " " + bc.Version,                
    DateStamp = DateTime.Now,
    PageViewed = HttpContext.Current.Request.Url.AbsolutePath,
    NodeId = UmbracoHelper.GetCurrentNodeID(),
    IsMobileDevice = IsMobileDevice(UserAgent),
    Platform = bc.Platform
};

Это прекрасно работает, но я заметил, что Платформа всегда говорит, что Windows NT для моей машины не Windows 7. Есть ли способ обнаружить этот типинформации в ASP.Net?

Ответы [ 11 ]

0 голосов
/ 11 января 2017

Функция John the VB хороша, но строка для Windows 10 не работает, потому что у вас "WINDOWS" в верхнем регистре.

Она должна быть такой же, как и другие, т.е.

If MyAgent.IndexOf("Windows NT 10.0") >= 0 Then
        Return "Windows 10"
...