0

这是我的问题...

我有一个以 II7 集成管道模式运行的网站,我想在整个网站上启用表单身份验证,除了包含登录表单的“/secure/”目录。

我的网络配置目前看起来像这样......

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <customErrors mode="Off"/>
        <authentication mode="Forms">
            <forms name=".ASPXAUTH" loginUrl="secure/login.aspx" protection="All" path="/" timeout="999999" slidingExpiration="true" enableCrossAppRedirects="true">
                <credentials passwordFormat="Clear">
                    <user name="user1" password="xxxxxx"/>
                </credentials>
            </forms>
        </authentication>
        <authorization>
            <allow users="user1"/>
            <deny users="*"/>
        </authorization>    
    </system.web>
    <location path="secure">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>
    <system.webServer>
        <!--Enabling Forms Authentication for the Entire Application-->
        <modules> 
            <remove name="FormsAuthenticationModule" />    
            <add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" />    
            <remove name="UrlAuthorization" />    
            <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />    
            <remove name="DefaultAuthentication" />    
            <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />    
        </modules>
    </system.webServer>
</configuration>

当我访问网站 URL 时,我只会得到一个无休止的重定向循环。我尝试将特定位置的身份验证规则放在 system.web 部分之上,但这没有效果。

有任何想法吗?

干杯,

罗宾

4

1 回答 1

3

访问权限是分层的。也就是说,如果您被禁止访问某个父级,则无论为子级设置什么权限,您都被禁止访问其所有子级。您可以将登录表单移动到根目录并设置表单的权限 - 它会起作用。

于 2012-04-10T10:46:53.877 回答