出于安全原因,我想通过应用程序级别为URL禁用一些http方法(例如OPTIONS,TRACE,HEAD)。
URL是“ mywebsite.com/bundles /”
我尝试过
<system.web>
<authorization>
<deny verbs="OPTIONS" users="*" />
<deny verbs="TRACE" users="*" />
<deny verbs="HEAD" users="*" />
</authorization>
...
<httpHandlers>
<add path="bundles" verb="OPTIONS" type="System.Web.DefaultHttpHandler" validate="true"/>
<add path="bundles" verb="TRACE" type="System.Web.DefaultHttpHandler" validate="true"/>
<add path="bundles" verb="HEAD" type="System.Web.DefaultHttpHandler" validate="true"/>
</httpHandlers>
它阻止了所有应用程序的http方法,但我只想要“ / bundles”及其文件和子目录。
但是“捆绑”不是我应用中的物理路径,而是虚拟的
bundles.Add(new Bundle("~/bundles/Something").Include("~/Contents/Scripts/file.js"));
bundles.Add(new Bundle("~/bundles/Anything").Include("~/Areas/Import/Scripts/App/anotherfile.js"));
答案 0 :(得分:1)
您应该可以使用<location>
元素将所有封闭的指令限制为您指定的路径。例如
<location path="bundles">
<system.web>
<authorization>
<deny verbs="OPTIONS" users="*" />
</authorization>
</system.web>
</location>
请参见https://msdn.microsoft.com/en-us/library/b6x6shw7(v=vs.100).aspx