检查这个不是很难,服务器代码可以参考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
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事件,这样做的效果如何?会不会存在不妥之处?
@teroy: 我认为这样挺好,简单明了,没有什么不妥
笨一点的方式就是建立一个basepage类,然后所有的页面都继承这个basepage 然后在这个里面种的page_init中判断