The*_*ker 3 c# asp.net-core-mvc
我是 .Net Core 初学者,正在寻找一种解决方案来保护应用程序免受 IE 的影响。
我在控制器中得到了以下代码:
string userAgent = Request.Headers["User-Agent"].ToString();
var flagsIE = new [] {"MSIE", "Trident"};
if(flagsIE.Any(userAgent.Contains)){
return RedirectToAction("BadBrowser");
}
Run Code Online (Sandbox Code Playgroud)
现在,如果有人尝试使用 IE 访问该页面,他们会被重定向到一个信息页面,要求他们使用现代浏览器。我不想将此代码添加到每个 Controller.cs 中,而是想将其添加到项目级别,以便它独立于项目内的位置执行。
而且,我知道这可以通过 _Layout.cshtml 来实现,我的问题是:在哪里以及如何实现一个函数,以便为项目中的所有请求的视图执行该函数,而无需在控制器中添加每个请求。
先感谢您。
正如 Icepickle 所建议的,在我的问题的评论中,我使用了中间件Startup.cs并得到了所需的结果:
app.Use(async (context,next) =>
{
string userAgent = context.Request.Headers["User-Agent"].ToString();
var IEkeywords = new [] {"MSIE", "Trident"};
if (IEkeywords.Any(userAgent.Contains)){
context.Response.Redirect("/IE/redirect/badbrowser.html");
return;
}
await next();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |