我在我的 asp.net 项目中包含了一个移动 Web 表单,我认为它可以/应该只对我的移动用户可见,但我意识到它也可以从任何浏览器中看到,我没有看到那里存在问题,因为我可以使用 HttpBrowserCapabilities.IsMobileDevice=true 区分访问并转移到适当的 aspx 页面,但结果是,当我从移动设备访问 Web 表单时,它被标识为 IsMobileDevice = false 并将我发送到另一个页面.
这怎么可能?
移动设备运行 Pocket PC 2003。
最佳答案
恕我直言:HttpContext.Current.Request.Headers("User-Agent")
的值是一个更安全的选择,因为它实际上指示发出请求的浏览器,而不是类型设备本身。
我从经验中了解到,如果智能手机通过第三方浏览器向您的服务发出请求,通常会进行任何类型的“您是什么类型的设备”测试( HttpCapabilityBase.IsMobileDevice
和/或 HttpContext.Current.Request.Browser.IsMobileDevice
) 将失败。
不幸的是,由于缺少允许的用户代理(或与此相关的不允许的用户代理)的大列表,您只需在渲染之前确保它不会以 Mozilla、iPhone 或 Opera 开头页...
这是一个很难打球的竞技场。
祝你好运。
关于asp.net - 移动设备被检测为非移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13224/