IMHO: the value of HttpContext.Current.Request.Headers("User-Agent") is a much safer bet, since it actually indicates the browser that makes the request, and not the type of device per-se.
I learned from experience that if a smartphone makes a request through a third-party browser to your service, more often than not some type of device type test ( HttpCapabilitiesBase.IsMobileDevice and / or HttpContext.Current.Request.Browser.IsMobileDevice ) .
Unfortunately, apart from a large list of allowed user agents (or forbidden user agents, for that matter), you just need to make sure that it does not start from Mozilla, iPhone or Opera before you page ...
This is a heavy arena for the game.
Good luck.
Pat hermens
source share