2011-10-13 33 views
1

我有一个asp.net应用程序,在根目录下有一个web.config文件,默认情况下使用Windows身份验证。如何为Web应用程序的文件夹配置表单身份验证?

我有一个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> 

现在,当我运行管理文件夹内的一个页面,它给了我下面的错误:

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身份验证?

感谢

+0

你确定管理员是一个应用程序,而不是一个虚拟文件夹? –

+0

你的意思是关于IIS设置?管理员不是应用程序,也不是虚拟文件夹。这只是根应用程序内的普通文件夹。 –

回答

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> 

无论如何,这可能HEL你Control Authorization Permissions in an ASP.NET Application

+0

谢谢;这应该写在根web.config或Admin文件夹内的web.config?我几乎都尝试过但都没有工作。 –

+0

这应该在您的管理文件夹中。 部分应该在根目录 –

+0

中不确定你的意思;你能编辑你的答案什么设置应该在哪个web.config? –

相关问题