我购买了一个虚拟主机.然后有两个不同的asp.net程序需要放在这个空间里(放在不同名的同级目录下),两个程序均使用Forms验证,且是不同的登陆页面,请问如何设置web.config来实现这两个网站分别跳到各自的登陆页面(也就是要这两个网站互不影响,相互是透明的).急~~~

解决方案 »

  1.   

    <location path="">
    <authorization>
    </authorization>
    </location>
      

  2.   

    在我的虚拟主机中,含有如下配置信息的web.config文件必须放在根目录下,问题就是如何限制forms只应用到某一个目录下呢?
    <authentication mode="Forms"> 
        <forms name=".vim" path="/" loginUrl="~/vim/login.aspx" protection="All">
        </forms>
    </authentication>
      

  3.   

    既然放在不同的虚拟目录下,那就个不影响了。若是A是虚拟目录,B是A下的目录,但不是虚拟目录的话:<?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        
      <system.web> 
         <authentication mode="Forms">
           <forms loginUrl="B/Login.aspx" name="BBSX_Admin" timeout="30" protection="All" path="/">
           </forms>
         </authentication>     <authorization>
            <allow users="*" /> 
        </authorization>    
     </system.web>
      
     <location path="B">
      <system.web>
       <authorization>
         <deny users="?"/>
       </authorization>
      </system.web>
     </location>
      
    </configuration>
      

  4.   

    假如A目录下有另一个目录C,C下的程序也使用Forms验证,那这个配置文件如何写呢?
    难道要写两个<forms>
      

  5.   

    你可以在Login.aspx里判断登录的来历,然后再转向不同的登录界面,这样可以配置无限多个
    例如:【asp.net 2.0的写法】
    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <authentication mode="Forms">
          <forms name="A" loginUrl="~/Login.aspx"></forms>
        </authentication>
        <authorization>
          <deny users="*" />
        </authorization>
      </system.web>  
      <location path="ALogin.aspx">
        <system.web>      
          <authorization>
            <allow users="?" />
          </authorization>
        </system.web>
      </location>
      <location path="BLogin.aspx">
        <system.web>
          <authorization>
            <allow users="?" />
          </authorization>
        </system.web>
      </location>
      <location path="CLogin.aspx">
        <system.web>
          <authorization>
            <allow users="?" />
          </authorization>
        </system.web>
      </location>
      <location path="AA">
        <system.web>
          <authorization>
            <deny users="?" />
          </authorization>
        </system.web>
      </location>
      <location path="BB">
        <system.web>
          <authorization>
            <deny users="?" />
          </authorization>
        </system.web>
      </location>
      <location path="CC">
        <system.web>
          <authorization>
            <deny users="?" />
          </authorization>
        </system.web>
      </location>
    </configuration>在Login.aspx的Page_Load里写protected void Page_Load( object sender, EventArgs e )
    {
      string retUrl = Request.QueryString["ReturnUrl"];
      Response.Write(retUrl);
      if (retUrl.IndexOf("AA") > -1)
      {
        Response.Redirect("ALogin.aspx?" + Request.QueryString);
      }
      else if (retUrl.IndexOf("BB") > -1)
      {
        Response.Redirect("BLogin.aspx?" + Request.QueryString);
      }
    }诸如此类。
    这是一个思路,你可以试试
      

  6.   

    同意孟子的上述说法。
    如果你的两个项目 a,b 中都有web.config的话,你可以在iis中将b也设置成一个应用程序。那么a/b 的应用是独立的。
      

  7.   

    net_lover(【孟子E章】) 可否详细讲解一下,我也遇到了两个虚拟目录的问题。谢谢