gpt4 book ai didi

.net - 即使没有路由,也可以使用RouteExistingFiles阻止对现有文件的访问

转载 作者:行者123 更新时间:2023-12-04 18:16:30 25 4
gpt4 key购买 nike

在ASP.net MVC 2中,即使文件系统中存在请求,我也可以使用routes.RouteExistingFiles = true;通过路由系统发送所有请求。

通常,这最终会碰到"{controller}/{action}/{id}"路由并抛出异常,因为找不到 Controller 。

不过,我不想使用该路由(我只有几个URL,并且它们是专门映射的),但是我仍然想阻止对文件系统的访问。

基本上,我想使用IgnoreRoute将页面列入白名单。有内置的方法可以做到这一点吗?

我当前的方法是仍然有一个路线"{*anything}"并在被点击时生成一个404,但是我只是想知道是否已经内置了某些东西?

最佳答案

这是ASP.NET MVC应用程序中Web.config授权的少数有效使用之一。 :)

我建议将RouteExistingFiles设置回false(以便Routing和MVC管道不处理这些请求,IIS和ASP.NET core可以处理)。将所有您要拒绝访问的文件放入一个文件夹,然后将Web.config放到该文件夹​​中:

<configuration>
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</configuration>

这将阻止IIS和ASP.NET直接提供这些文件。

关于.net - 即使没有路由,也可以使用RouteExistingFiles阻止对现有文件的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2532468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com