Мобильное устройство обнаружено как не мобильное устройство - PullRequest
6 голосов
/ 16 августа 2008

Я включил мобильную веб-форму в свой проект asp.net, я думал, что она может / должна быть видна только для моих мобильных пользователей, но я понимаю, что ее также можно увидеть из любого браузера, я не вижу проблема в том, что я могу разграничить доступ с помощью HttpBrowserCapabilities.IsMobileDevice = true и передать на соответствующую страницу aspx, но в результате этого, когда я получаю доступ к веб-форме со своего мобильного устройства, она определяется как IsMobileDevice = false и отправляет меня на другую страницу .

Как такое возможно?

Мобильное устройство работает под управлением Pocket PC 2003.

Ответы [ 3 ]

4 голосов
/ 18 августа 2008

ИМХО: значение HttpContext.Current.Request.Headers("User-Agent") является гораздо более безопасной ставкой, поскольку оно фактически указывает браузер, который делает запрос, а не тип устройства per se .

Из опыта я узнал, что, если смартфон отправляет запрос через сторонний браузер к вашему сервису, чаще всего тест типа «какой тип устройства вы» (HttpCapabilitiesBase.IsMobileDevice и / или HttpContext.Current.Request.Browser.IsMobileDevice) потерпит неудачу.

К сожалению, если не считать большого списка разрешенных пользовательских агентов (или запрещенных пользовательских агентов), вам просто нужно убедиться, что он не запускается с Mozilla, iPhone или Opera, прежде чем рендерить страница ...

Это сложная арена для игры.
Удачи.

2 голосов
/ 16 августа 2008

Некоторые не распознаются, поскольку агент пользователя был испорчен или используется новый браузер. Таких как Opera Mobile 9.5. Чтобы это исправить, вам нужно создать файл Browser (* .browser) специально для определения этого. Мне пришлось сделать это для нового UserAgent, основанного на Mozilla, который отправляется из Google.

1 голос
/ 25 сентября 2008

Я думаю, вы должны использовать другие DDR лучше, чем возможности браузера Microsoft. Я использую http://wurfl.sourceforge.net>WURFL, это открытый исходный код и, возможно, он более расширен и обновлен. Есть и другие коммерческие DDR, такие как DeviceAtlas .

Существует много библиотек .net, но я использую Marg.Wurfl . Позволяет рендерить мобильную веб-страницу, используя возможности wurfl.

...