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

認証タグの後にこれを 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 に答える