Web.config该放在网站文件夹的什么位置?

时间:2022-05-13 11:35:48
各位高手:
   我正在学习ASP.net(VB),我不知道怎么样布置Web.config,我现在要做一个会员管理系统,该系统分为两部分,一部分为后台管理(文件夹名称:ch15_admin,该文件夹为ch15的子目录),该部分需要登录后才能访问,其余的部分不需要登录就可以访问(文件夹名称:ch15,该文件夹为ch15_admin的父目录),。
    为了达到以上目的,我在将Web.config放在根目录(ch15目录下),并写入以下语句,并且把需要登录的部分(ch15_admin)设置为网站应用程序:
       <authentication mode="Forms">
        <forms name="ch15_admin" loginUrl="ch15_admin/login.aspx" />
      </authentication>
      <authorization>
        <deny users="?" />
      </authorization>
    运行时,路径却有错,系统的路径是:ch15/ch15_admin/ch15_admin/login.aspx,而实际上的路径应该是ch15/ch15_admin/login.aspx不知道怎么解决,请各位高手帮帮忙,谢谢!

Web.config源代码:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
      <authentication mode="Forms">
        <forms name="ch15_admin" loginUrl="login.aspx" />
      </authentication>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
</configuration>

以下为文件夹的布置图:
----ch15(根目录)
  |-ch15_admin(该目录和文件需要登录才能访问)
  |-其它目录(其余目录和文件不需要登录就能访问)

9 个解决方案

#1


你的根目录下

#2


我是放在根目录下啊,但路径却是:/ch15/login.aspx
而实际的路径应该是:/ch15/ch15_admin/login.aspx
而且在未登录的情况下所有文件及目录都不能访问,我需要的是除了ch15_admin目录之外的所有文件在未登录的情况下能够访问。

#3


本来生成后放那里你就放那里..不要去动它就不会错

#4


web.config只负责对该文件夹下面的所有文件及子目录实现管理和配置.
根目录下面的web.config是对全站的,
子目录下面也可以放的,子目录下的web.config文件是针对该子目录的配置

#5


我也在根目录下放置了web.config,然后把ch15_admin下的web.config写入了:
authentication mode="Forms">
        <forms name="ch15_admin" loginUrl="login.aspx" />
      </authentication>
      <authorization>
        <deny users="?" />
      </authorization>
而且也将ch15_admin在IIS管理里面设置为应用程序了,但系统提示:
在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。

源错误:
行 10:     <connectionStrings/>
行 11:     <system.web>
行 12:        <authentication mode="Forms">行 13:         <forms name="ch15_admin" loginUrl="login.aspx" />
行 14:       </authentication>

#6


任何虚拟目录的路径下的文件夹下都可以放,但注意,子文件下的web.config中的设置会替换父文件夹的web.config中的设置.

#7


up

#8


loginUrl="~/ch15/ch15_admin/login.aspx"
试试这个

为什么你的登陆是在要求登陆的文件夹下面?

#9


记住一点就可以了.

web.config 对当前目录及子目录起效. 但当某个子目录中有web.config时, 那么这个子目录的树 将采用新的web.config的设置, 如果这个子目录的下级某个目录还有web.config同理.

#1


你的根目录下

#2


我是放在根目录下啊,但路径却是:/ch15/login.aspx
而实际的路径应该是:/ch15/ch15_admin/login.aspx
而且在未登录的情况下所有文件及目录都不能访问,我需要的是除了ch15_admin目录之外的所有文件在未登录的情况下能够访问。

#3


本来生成后放那里你就放那里..不要去动它就不会错

#4


web.config只负责对该文件夹下面的所有文件及子目录实现管理和配置.
根目录下面的web.config是对全站的,
子目录下面也可以放的,子目录下的web.config文件是针对该子目录的配置

#5


我也在根目录下放置了web.config,然后把ch15_admin下的web.config写入了:
authentication mode="Forms">
        <forms name="ch15_admin" loginUrl="login.aspx" />
      </authentication>
      <authorization>
        <deny users="?" />
      </authorization>
而且也将ch15_admin在IIS管理里面设置为应用程序了,但系统提示:
在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。

源错误:
行 10:     <connectionStrings/>
行 11:     <system.web>
行 12:        <authentication mode="Forms">行 13:         <forms name="ch15_admin" loginUrl="login.aspx" />
行 14:       </authentication>

#6


任何虚拟目录的路径下的文件夹下都可以放,但注意,子文件下的web.config中的设置会替换父文件夹的web.config中的设置.

#7


up

#8


loginUrl="~/ch15/ch15_admin/login.aspx"
试试这个

为什么你的登陆是在要求登陆的文件夹下面?

#9


记住一点就可以了.

web.config 对当前目录及子目录起效. 但当某个子目录中有web.config时, 那么这个子目录的树 将采用新的web.config的设置, 如果这个子目录的下级某个目录还有web.config同理.