如何为我的Web应用程序的文件夹配置表单身份验证?

时间:2011-10-13 10:15:14

标签: c# asp.net windows authentication forms-authentication

我有一个带有web.config文件的asp.net应用程序,默认使用Windows身份验证。

我有一个应该具有Forms身份验证的Admin文件夹。为此,我在Admin文件夹中添加了一个新的web.config文件,如下所示:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authentication mode="Forms" >      
      <forms loginUrl="~/Admin/Login.aspx" name=".ASPXFORMSAUTH" >
      </forms>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>   
  </system.web>
</configuration>

现在,当我在Admin文件夹中运行一个页面时,它给出了以下错误:

Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS.

如何仅为Admin文件夹中的页面配置表单身份验证,并将其他页面保留为默认的Windows身份验证?

感谢

1 个答案:

答案 0 :(得分:0)

我认为你需要做一些像

这样的事情

在管理员文件夹web.config中     

  <location path="Register.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>

</configuration>

在您的根目录web.config

<system.web>
<authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
</system.web>

无论如何,这可能对您有所帮助Control Authorization Permissions in an ASP.NET Application