1

私はこれに困惑しています。いくつかのページの上にマスター ページがあり、そのうちの 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 に答える