1

我有一个 Web 应用程序,它的默认设置web.config包含所有需要的设置,所以现在我需要创建一个文件夹,在该文件夹中,我正在使用与父应用程序相同的成员资格表来实现登录页面。我试图允许某些角色访问该文件夹,我尝试在该文件夹中添加一个带有以下标记的 web.config:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authorization>
            <allow roles="customers"/>
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>

我遇到的问题是,当我添加它并尝试登录时,它会将我发送到带有 a 的父登录页面,ReturnUrl这是因为父在 web 配置中有这一行:

<authentication mode="Forms">
    <forms loginUrl="~/login.aspx"  timeout="20160" />
</authentication>

所以我决定将它添加到文件夹中的 web.config 中,但使用正确的 url:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <authentication mode="Forms">
            <forms loginUrl="~/pages/customerlogin.aspx"  timeout="20160" />
        </authentication>
        <authorization>
            <allow roles="customers"/>
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>

但现在它告诉我这个错误:

异常详细信息:System.Web.HttpException:无法加载类型“Intelligencia.UrlRewriter.RewriterHttpModule”。

我想我的问题是,我应该向那个孩子添加什么才能web.config让它工作?它不是从父母那里继承它需要的所有其他东西吗?这是我第一次在子文件夹中处理此类 web.config 设置问题。

注意(更新):该文件夹已转换为应用程序

4

2 回答 2

0

当你说:

<deny users="?"/>

您是说您不允许未识别的用户在登录前执行页面。

只有在登录后,您才能评估用户角色。因此,您应该只有一个登录页面,并根据用户的角色将他们重定向到不同的子站点。

如果该文件夹现在是一个应用程序,它需要整个配置文件。

于 2013-01-24T18:38:19.210 回答
0

如果您不想从父 web.config 继承,那么在您的子 web.config 中,您可以将以下行添加为您不想继承的配置部分的第一个子元素。

示例子配置

<system.web>
      <clear />
      <!-- add child config settings here -- >
 </system.web>
于 2013-01-24T18:50:54.357 回答