OS 和移动检测是否使用 HttpBrowserCapabilities 最佳实践?

Is using HttpBrowserCapabilities best Practice for OS and mobile detection?

我想知道使用从 HttpContext.Request.Browser 获得的 HttpBrowserCapablilties 是否是我检查请求是否来自 windows 台式机而非移动设备的最佳方式.

请参阅下面的示例,了解我如何使用它。

public static bool IsWindowsDesktop(this HttpBrowserCapabilities browser)
    {
        return string.Equals(browser.Platform, "WinNT") && browser.IsMobileDevice;
    }

简短的回答是否定的。有关更多详细信息,请参阅 SO,但 HttpBrowserCapabilities 基于您的框架更新和存储在以下位置的内容:

%SystemRoot%\Microsoft.NET\Framework[version]\Config\Browsers

请注意,建议的 51 Degrees 库目前存在严重的设计缺陷。当您尝试检测 UA 是否移动时,它会为每个请求引发异常。我们已经与 51 Degrees 讨论过这个问题,他们将在 4.x 版本中修复同样的问题。在那之前我们必须忍受:

你可能对其他第 3 方库有更好的运气。