我在ASP应用程序中使用了web.config,将大部分设置应用于根路径,例如。
<location path="." inheritInChildApplications="false">
...
<authentication mode="Forms">
<forms loginUrl="Login" name="APP" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
...
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
</system.webServer>
...
</location>
然后我允许匿名访问“api”路径,如下所示。
<location path="api" inheritInChildApplications="false">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
根路径位置元素中应用的其他设置是否适用于“api”路径?
我在制作中遇到了一些奇怪的行为,发现在上面添加了<system.webServer>
配置。在将大部分配置移动到根路径位置元素之前,不需要这样做。
答案 0 :(得分:1)
这取决于api
路径是否在子应用程序中。
如果子应用程序中的api
路径不,是的,应用于根位置的其他设置将应用于该路径。
如果子应用程序中的api
路径 ,否则应用于根位置的其他设置将不应用于它 - per {{ 1}}。
我在VS 2013网络应用程序中使用Web根目录和inheritInChildApplications="false"
子文件夹确认了这一点:
api
不是子应用程序)。api
用作子应用程序。有关详细信息,请参阅MSDN's documentation for the location
element - 特别是其api
属性。