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

本文关键字:浏览器 MVC 应用程序 拒绝 | 更新日期: 2023-09-27 17:55:54

如果客户端是我不想支持的浏览器,我可以想到几种不同的方法来将请求重定向到我的 MVC 4 应用程序。 谁能提出他们认为最好的方法? http 处理程序?, 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>

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

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

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

每个请求上都有一个模块运行...这就是你正在寻找的。