在ASP.NET2.0中,如果根目录允许匿名用户访问,而根目录下的一个页面(如Info.aspx)必须要登录(假设登录页面为login.aspx)后才能访问,根目录下的web.config文件必须这样配置:
<?xml version="1.0"?> <configuration> <appSettings> </appSettings> <connectionStrings> </connectionStrings> <system.web> <compilation debug="true"/> <!--<authentication mode="Windows"/>--> <authentication mode="Forms"> <forms loginUrl="login.aspx" protection="All" path="/" timeout="30"/> </authentication> <authorization> <!--允许匿名--> <allow users="?"/> </authorization> </system.web> <location path="Info.aspx"> <system.web> <!--认证项配置(在为一个单独页面指定认证信息时,authentication节只能从这个目录继承,不能单独设置)--> <!-- <authentication mode="Forms"> <forms name=".www.cnpp.info" loginUrl="login.aspx" protection="All" path="/" timeout="30"/> </authentication> --> <!--用户访问控制--> <authorization> <!--阻止匿名--> <deny users="?"/> </authorization> </system.web> </location> </configuration> 也就是在需要认证的页面配置节中不能配置authentication项,只能在在根目录中配置authentication项,Info.aspx从根目录继承. 否则会出现这样的错误: "在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误 " 最后验证了一个是<authentication> <form 节只能出现在根站点或应用程序站点中 |
zdyguilong(Keep Walking!) 回复:web.config配置问题 |
学习了, |
ncpuam() 回复:web.config配置问题 |
<authentication> <form>节只能出现在根站点或应用程序站点中,而且如果根目录有了<authentication> <form>节,那么子目录的就自动从根目录继承了,所以只能在根目
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
找了半天,发现原因是你创建的虚拟目录的下面一级没有创建,而且你的网站是移动了目录的。
如你的主网站是 localhost 在localhost下创建虚拟目录 指向 E:/web 命名为 WebDev 而你的网站工程是放在 E:/web/myweb下面。 整个目录为 //localhost/WebDev/myweb 这时 点虚拟目录的属性的话 WebDev是已经创建了的。 但是你的 myweb 目录属性没有创建,要手动自己创建。 创建了就没事了。 ps:这就看出如果你的虚拟目录直接指向你放网站工程的目录(E:/web/myweb的话就没这个问题。不过如果同时有几个网站工程在编写的话,指向WebDev就行了。创建新的项目的时候就可以用 localhost/WebDev/webapplication1来把工程文件放到 E:/web/webapplication1文件夹下,新创不需要设定虚拟目录创建应用程序 这是我找到的答案,我试了一下发现是正确的,希望对有同样问题的有帮助。 minkingshine sofen 等 级: 发表于:2007-04-16 22:30:354楼 得分:0 看看你的网站的IIS 运行池启动了没有 要是没有启动的话也会出现这样的情况 liuluo520 孤单一吻 等 级: 发表于:2007-04-18 14:28:305楼 得分:0 将BIN目录放到站点根目录下 |
在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误
最新推荐文章于 2020-07-21 16:36:47 发布