2

如果客户端是我不想支持的浏览器,我可以想出几种不同的方法来将请求重定向到我的 MVC 4 应用程序。任何人都可以建议他们认为最好的方法吗?Http 处理程序?,Global.asax 会话开始?,自定义基本控制器?还有什么?

本质上,我想将所有请求重定向到一个页面,该页面声明不支持 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>
4

2 回答 2

1

就像您说的那样,您可以通过多种方式做到这一点,但我会创建一个IHttpModule,因为它将是最干净的方式,并且可以在任何 ASP.Net 应用程序中工作。

每个请求都会运行一个模块......这正是您正在寻找的。

于 2013-01-25T14:29:05.853 回答
1

另一个想法是使用 IIS URL 重写模块来检查用户代理并根据需要进行重定向。但这需要 IIS 7 和如何配置 IIS URL 重写的知识。我个人没有这样做,但计划使用这种方法来解决几乎相同的问题。我喜欢这种方法的地方在于,如果需要,它可以随时更改,而无需更改 Web 应用程序或其任何底层代码。

于 2013-01-25T16:15:15.903 回答