在MVC应用程序中拒绝旧浏览器

时间:2013-01-25 14:26:23

标签: c# asp.net asp.net-mvc internet-explorer asp.net-mvc-4

如果客户端是我不想支持的浏览器,我可以考虑将请求重定向到我的MVC 4应用程序的几种不同方法。任何人都可以建议他们认为最好的方法吗? Http Handler?,Global.asax Session Start ?, Custom Base Controller?还有别的吗?

基本上,我想将所有请求重定向到一个页面,该页面指出IE 7及以下版本不支持有关如何升级其浏览器的信息和超链接。


解决方案

    <rule name="UserAgent MSIE Rewrite" patternSyntax="ECMAScript" stopProcessing="true">
      <match url=".*" ignoreCase="true" negate="false" />
      <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{HTTP_USER_AGENT}" pattern="MSIE 7.0b|MSIE 7.0|MSIE 6.0b|MSIE 6.0|MSIE 5.5b1|MSIE 5.5|MSIE 5.0|MSIE 5.01|MSIE 4.0" />
      </conditions>
      <action type="Redirect" url="http://ffds1.com/NotSupported.html" appendQueryString="false" redirectType="Found" />
    </rule>

2 个答案:

答案 0 :(得分:1)

就像你说的那样,你可以通过多种方式实现这一目标,但我会创建一个IHttpModule,因为它将是最干净的方式,并且可以在任何ASP.Net应用程序中运行。

每个请求都会运行一个模块......这就是你要找的东西。

答案 1 :(得分:0)

另一个想法是使用IIS URL Rewrite module检查用户代理并根据需要重定向。但这需要IIS 7以及如何配置IIS URL重写的知识。我个人还没有这样做,但计划使用这种方法几乎同样的问题。我喜欢这种方法的方法是,如果需要,可以动态更改它,而无需更改Web应用程序或其任何底层代码。