2

我正在开发一个 ASP .Net 网站。
我创建了 2 个 ASPX 页面和 1 个母版页。
我的 2 个 ASPX 页面是与母版页关联的内容页面。
我的 2 个 ASPX 页面是:MainMenu.aspx 和 Authentication.aspx。
Authentication.aspx 是我的登录页面。

我为我的网站创建了一个主题。
我的主题由一个 CSS 文件组成。
我在 web.config 文件中添加了以下元素以自动导入我的 CSS 文件:

<pages styleSheetTheme="Default" />

我的 CSS 文件已正确导入,直到我在 web.config 文件中配置授权,如下所示:

<configuration>
    <system.web>

        ...

        <pages styleSheetTheme="Default" />

        <authentication mode="Forms">
          <forms loginUrl="~/Authentication.aspx" defaultUrl="~/MainMenu.aspx">
          </forms>
        </authentication>

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

  <location path="~/Authentication.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>
  </location>
</configuration>

我的授权配置的目的是:

  • 允许任何用户访问我的登录页面 - Authentication.aspx
  • 只允许经过身份验证的用户访问我的登录页面以外的页面

如果我注释了身份验证、授权和位置元素,那么我的 CSS 文件将再次正确导入。

我的授权配置有什么问题?

4

1 回答 1

1

有人向我解释了我的问题的原因:

  1. 加载身份验证页面时向服务器发送了一个请求。
  2. 该请求针对 CSS 文件。
  3. 但 CSS 文件位于仅限未经身份验证的用户使用的文件夹中。

因此请求失败。

我是如何解决我的问题的:

  • 我已将所有受限文件放入一个公共文件夹中。
  • 我在文件夹中创建了一个 web.config 文件,只允许经过身份验证的用户访问。
  • 我已经从我的网站根 web.config 文件中删除了授权和位置元素。
于 2013-02-06T11:11:52.977 回答