有什么方法可以检查RouteConfig.cs文件中的浏览器?

时间:2019-07-23 12:24:16

标签: c# asp.net asp.net-mvc

我试图检查RouteConfig.cs文件中的浏览器,但显示错误,但未从浏览器获取请求。

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    string browser = HttpContext.Current.Request.Browser.Browser;
    if (browser == "Chrome" || browser == "Firefox")
    {
        routes.MapRoute(name: "Default",
                        url: "{controller}/{action}/{id}",
                        defaults: new
                                  {
                                      controller = "Login",
                                      action = "Index",
                                      id = UrlParameter.Optional
                                  });
    }              
}

我的目标是仅从chrome和firefox访问应用程序,因此如果条件不满足,我尝试在RouteConfig中对其进行检查以将其重新路由到另一个视图。但是它不起作用,所以我已经与 Global.asax 进行了检查,但是路由在那里不起作用,因此有没有针对此问题的解决方案

2 个答案:

答案 0 :(得分:0)

由于启动与请求无关,因此无法在启动时检查浏览器。

您最好的选择是检查动作或控制器本身是什么浏览器。我会很警惕,尽管看起来您正在尝试排除某些特定的浏览器来访问您的网站。

答案 1 :(得分:0)

对于浏览器检查,一个不错的选择是配置一个中间件类,该类可用于检查每个http请求,并可能指定重定向或响应。这是一种在一个地方包含所有逻辑的合适方法,因此您无需在控制器或操作之间进行重复,并且设置起来非常容易。在线上有很多文章。