如何在ASP.NET C#中识别来自移动设备的http请求?

时间:2011-12-11 12:42:24

标签: asp.net mobile

有谁知道如何在asp.net中识别来自移动设备的请求?我正在使用此代码,但使用迷你歌剧模拟器来检查它是来自移动还是桌面应用程序。

HttpRequest httpRequest = HttpContext.Current.Request;

if ((httpRequest.Browser.IsMobileDevice))
{
   string path = httpRequest.Url.PathAndQuery;
   bool isOnMobilePage = path.StartsWith("/Mobile/", StringComparison.OrdinalIgnoreCase);

   if (!isOnMobilePage)
   {
      string redirectTo = "~/Mobile/";
      HttpContext.Current.Response.Redirect(redirectTo);
   }
}

我使用的是Visual Studio,它没有内置的移动sdk。

由于

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

ASP.NET在服务器上使用预定义的* .browser文件到detect the browser capability。这不是一个好方法,因为它总是不是最新的。您可以parse the UserAgent获取信息。

答案 2 :(得分:0)

WURFL resource database与.NET API一起使用。这将为您提供非常广泛的移动功能列表。它是一个开源社区项目,不断使用最新设备进行维护。

51度是我过去使用过的API。浏览器对象使用各种移动特定属性(如model,make,os)进行扩展,重要的是如果它是移动设备。此外,WURFL社区现在提供自己的WURFL .Net API。这个SO question进行了比较和对比。

有趣的是,当我们进行测试时,平板电脑设备不会作为移动设备出现,所以在分类这些设备时,您需要了解对您来说重要的事情。如果您只关心较小的屏幕分辨率,那么这就足够了。但是,如果您的网站有兴趣定位可移植设备,那么您必须包含其他逻辑,然后检查模型并制作。