用户手机客户端登录Login页面跳转到手机MobileLogin页面问题总结

     最近的一个项目中要实现区别手机移动客户端还是PC客户端,然后让手机客户端的用户跳转到MobileLogin页面。遇到了一个问题,我反复测试、调试、修改终于就出这个问题的原因。具体问题是这样的:

            Login.aspx页面是这样的:有一个连接<a class ="a04" id = "a04"  href = "<%=os ?MobileLogin.aspx:'#'%>"></a> 

            后台代码定义了一个静态全局变量:public static bool os = ISWAPBroser(); ;

                    protected void Page_Load(object sender, EventArgs e)
                 {


                                         string userAgent = HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"];
                                        

                                其他略。。。。。

                    }

  #region
        /// <summary>  
        /// 获取客户端是是否手机  
        /// </summary>  
        /// <returns></returns>  
        public  bool ISWAPBroser()
        {
            //UserAgent   
            string  userAgent = HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"];
              
          String[] mobileAgents = {"iphone", "android", "phone", "mobile", "wap", "netfront",
                                      "java", "opera mobi", "opera mini", "ucweb", "windows ce", 
                                      "symbian", "series", "webos", "sony", "blackberry", "dopod", 
                                      "nokia", "samsung", "palmsource", "xda", "pieplus", "meizu", 
                                      "midp", "cldc", "motorola", "foma", "docomo", "up.browser", 
                                      "up.link", "blazer", "helio", "hosin", "huawei", "novarra",
                                      "coolpad", "webos", "techfaith", "palmsource", "alcatel", 
                                      "amoi", "ktouch", "nexian", "ericsson", "philips", "sagem",
                                      "wellcom", "bunjalloo", "maui", "smartphone", "iemobile",  
                                      "spice", "bird", "zte-", "longcos", "pantech", "gionee", "portalmmm",
                                      "jig browser", "hiptop", "benq", "haier", "^lct", "320x320", "240x320",
                                      "176x220", "w3c ", "acs-", "alav", "alca", "amoi", "audi", "avan", "benq",
                                      "bird", "blac", "blaz", "brew", "cell", "cldc", "cmd-", "dang", "doco",
                                      "eric", "hipt", "inno", "ipaq", "java", "jigs", "kddi", "keji", "leno",
                                      "lg-c", "lg-d", "lg-g", "lge-", "maui", "maxo", "midp", "mits", "mmef",
                                      "mobi", "mot-", "moto", "mwbp", "nec-", "newt", "noki", "oper", "palm",
                                      "pana", "pant", "phil", "play", "port", "prox", "qwap", "sage", "sams", 
                                      "sany", "sch-", "sec-", "send", "seri", "sgh-", "shar", "sie-", "siem", 
                                      "smal", "smar", "sony", "sph-", "symb", "t-mo", "teli", "tim-", "tosh",
                                      "tsm-", "upg1", "upsi", "vk-v", "voda", "wap-", "wapa", "wapi", "wapp", 
                                      "wapr", "webc", "winw", "winw", "xda", "xda-", "Googlebot-Mobile"};
        bool  isMoblie = false;
          
         string userAgent1 = HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"];
        
         if (userAgent1 != null)
           {
             for(int i=0;i<mobileAgents.Length;i++)
              {
                  if (userAgent1.ToLower().IndexOf(mobileAgents[i]) >= 0)
               {
                isMoblie = true;
                break;
             }
            }
          }
          return isMoblie;
         }
        #endregion 


这样写的目的是想在页面加载之前确定链接地址。但是我却忽略了一个问题,就是我此时获得userAgent 是空的,所以ISWAPBroser()返回的值一直是false,找到最终原因,所以解决的办法就有了。如下:

protected void Page_Load(object sender, EventArgs e)
        {


            string userAgent = HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"];
            bool os = ISWAPBroser();
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值