我试图检查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 进行了检查,但是路由在那里不起作用,因此有没有针对此问题的解决方案
答案 0 :(得分:0)
由于启动与请求无关,因此无法在启动时检查浏览器。
您最好的选择是检查动作或控制器本身是什么浏览器。我会很警惕,尽管看起来您正在尝试排除某些特定的浏览器来访问您的网站。
答案 1 :(得分:0)
对于浏览器检查,一个不错的选择是配置一个中间件类,该类可用于检查每个http请求,并可能指定重定向或响应。这是一种在一个地方包含所有逻辑的合适方法,因此您无需在控制器或操作之间进行重复,并且设置起来非常容易。在线上有很多文章。