我有一个ASP.net 1.1应用程序。
在子文件夹中,我安装了blogengine.net,这是一个2.0应用程序。
该文件夹设置为应用程序并使用正确的框架。
它有效...除了身份验证。
问题是从根应用程序中的web.config继承。
此问题的常见解决方法是在嵌套应用的配置文件中为要重置的每个内容使用“清除”。
<httpModules>
<clear/>
</httpModules>
问题是认证标签中似乎不允许“清除”:
<authentication mode="Forms">
<clear/>
<forms... rest of my child app's settings for authentication...>
</authentication>
这样做会给我一个语法错误。
任何人都知道如何让这个工作?我需要阻止web应用程序中的根应用程序的身份验证信息在子应用程序中继承。
更新:根据curious_geek的回答,一个选项是修改根配置以不允许继承。但是,我的理解是,还会阻止system.config属性。这通常是一件大事吗?这不是我的服务器,所以不知道这样做是否会打开一些安全问题,这些问题可能无法与服务器管理员一起解决。
答案 0 :(得分:3)
您需要告诉父web.config否在子应用程序中强制执行部分继承。
如果你想停止system.web部分继承到子应用程序,那么你将使用如下所述的location元素包装你的system.web部分。
<location path="." inheritInChildApplications="false">
<system.web>
</system.web>
</location>
您也可以将此技术应用于连接字符串和appsettings部分的停止继承。
PS :实际添加时 web.config中的行,visual studio会 不承认它有效并标记它 作为错误,但请放心 在IIS下运行良好 展开。