Web.config设置

时间:2013-01-24 16:33:41

标签: c# asp.net visual-studio-2008 web-config

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

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

我遇到的问题是,当我添加此内容并尝试登录时,它会将我发送到带有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设置问题。

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

2 个答案:

答案 0 :(得分:0)

当你说:

<deny users="?"/>

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

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

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

答案 1 :(得分:0)

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

子配置示例

<system.web>
      <clear />
      <!-- add child config settings here -- >
 </system.web>