3

我在 web.config 中有一些如下所示的行:

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

  <location path="Error.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="Default.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

我自己控制登录方法。假设用户未登录并登陆 abc.aspx 页面。Abc.aspx 页面未经登录是无权查看的,如上面的 web.config 所示,只允许使用 default.aspx 和 error.aspx。如何动态检查我当前所在的页面是否被 web.config 允许?我可以对其进行硬编码,但我想看看这是否可行,这样我所要做的就是在每次我想将页面添加到异常列表时修改 web.config 而不是我的代码。

4

2 回答 2

1

在 authentcation 标签之后将它添加到您的 webconfig 中。这将确保未经授权的用户不会访问任何页面,您添加的其他标签应允许匿名访问您指定的页面。

<authorization>
  <deny users="?"/>
</authorization>
于 2013-02-07T16:49:23.737 回答
0

在每个页面上,您可以添加:

    protected void Page_Load(object sender, EventArgs e)
    {
            if (!Request.IsAuthenticated)
            {
                Response.Redirect("~/Account/Login.aspx");
            }

    }
于 2013-02-07T16:43:25.340 回答