首页 新闻 会员 周边 捐助

如何在ASP.NET webform 中实现判断浏览器是IE6 则自动跳到另一个网站?

0
悬赏园豆:20 [待解决问题]

能不能实现一种统一处理的方法? 就只需写一次代码 或配置一次web.config 就可以实现这个功能. 只要IE6浏览器访问了web程序中的任何一个网页就自动跳到另一个网页. 能提供具体思路也行.谢谢!

teroy的主页 teroy | 初学一级 | 园豆:125
提问于:2013-03-16 19:16
< >
分享
所有回答(2)
0

检查这个不是很难,服务器代码可以参考http://msdn.microsoft.com/en-us/library/ms537509(v=VS.85).aspx 

private float getInternetExplorerVersion()
{
  // Returns the version of Internet Explorer or a -1
  // (indicating the use of another browser).
  float rv = -1;
  System.Web.HttpBrowserCapabilities browser = Request.Browser;
  if (browser.Browser == "IE")
    rv = (float)(browser.MajorVersion + browser.MinorVersion);
  return rv;
}

private void Page_Load(object sender, System.EventArgs e)
{
  string msg;
  double ver = getInternetExplorerVersion();
  if (ver > 0.0)
  {
    if (ver >= 7.0) 
      msg = "You're using a recent version of Internet Explorer.";
    else
      msg = "You should upgrade your copy of Internet Explorer.";
  } 
  else
    msg = "You're not using Internet Explorer.";

  Label1.Text = msg;
}

至于,想要统一处理这种事情,可以考虑定义一个HttpModule的方式,可以参考 http://support.microsoft.com/kb/307996

定制HttpModule有一些常见的错误,可以参考我的文章

http://www.cnblogs.com/chenxizhang/archive/2009/12/19/1627918.html

http://www.cnblogs.com/chenxizhang/archive/2008/08/27/1277274.html 

 

陈希章 | 园豆:2538 (老鸟四级) | 2013-03-17 08:09

protected void Application_BeginRequest(object sender, EventArgs e)
{
  //禁用IE6访问
  HttpBrowserCapabilities hbc = Request.Browser;
  if (hbc.Type.ToLower() == "ie6")
  {
    Response.Redirect("http://windows.microsoft.com/zh-cn/windows/upgrade-your-     browser");
  }
}

我使用了这样的解决方案, 在全局应用程序中配置Application_BeginRequest事件,这样做的效果如何?会不会存在不妥之处?

支持(0) 反对(0) teroy | 园豆:125 (初学一级) | 2013-03-21 11:11

@teroy: 我认为这样挺好,简单明了,没有什么不妥

支持(0) 反对(0) 陈希章 | 园豆:2538 (老鸟四级) | 2013-03-21 18:37
0

笨一点的方式就是建立一个basepage类,然后所有的页面都继承这个basepage 然后在这个里面种的page_init中判断

chenping2008 | 园豆:9836 (大侠五级) | 2013-03-17 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册