1

我对此感到困惑。我在几个页面之上有一个母版页,其中一个是登录页面。这是 web.config 的示例

        <authentication mode="Forms">
          <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
        </authentication>

    ...

      <location path="~/Account/Login.aspx">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
  <location path="Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>

从 Default.aspx,我访问需要登录的 About.aspx。About.aspx 永远不会被命中,而是 Login.aspx 被命中,然后是 Site.master,然后再次登录,然后再次是 site.master,最后是 login.aspx 和 master.aspx。三次!...登录-> 法师被击中3次!...现在...如果我将 Web.config 中的代码行从

 <location path="~/Account/Login.aspx">

 <location path="Account">

登录->大师只被击中一次。Account 文件夹中除了 login.aspx/cs/designer 之外没有其他内容。为什么会这样?当我添加更多页面时,我想控制帐户文件夹中的页面,而不仅仅是取消对它们的访问权限,甚至

 <location path="Account/Login.aspx">

(删除“〜/”)没有做任何事情。任何帮助将不胜感激。

4

1 回答 1

1

您应该允许对您的所有访问,MasterPage类似于您允许任何人访问您的登录页面的方式。

它不会自行提供,也不需要保护,因为使用它的页面应该被锁定。通常我的根目录不安全,其中包含登录页面、母版页等。然后我有一个安全区域,其中包含使用根目录的母版页的页面。

于 2013-02-05T19:37:56.843 回答