我对此感到困惑。我有一个主页面在几页之上,其中一个是登录页面。以下是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。三次! ...登录 - &gt;大师被击中3次! ...现在......如果我从
更改Web.config中的代码行 <location path="~/Account/Login.aspx">
到
<location path="Account">
登录 - &gt;主人只会被击中一次。除了帐户文件夹中的login.aspx / cs / designer之外别无其他功能。为什么会这样?当我添加更多内容时,我想控制帐户文件夹中的页面,而不仅仅是解除对它们的访问权限,甚至
<location path="Account/Login.aspx">
(删除“〜/”)没有做任何事情。任何帮助将不胜感激。
答案 0 :(得分:1)
您应该允许对MasterPage
的所有访问权限,与您允许任何人访问您的登录页面的方式类似。
它不会自行提供,也不需要保护,因为应该锁定使用它的页面。通常我有root不安全的,它有登录页面,母版页,大约等等。然后我有一个安全区域,其页面使用从根页面的母版页。