1

私はこれらのページを持っています:

  1. _PageStart.cshtml
  2. インデックス.cshtml
  3. ログイン.cshtml

    .

    .

    .

n. OtherPage.cshtml

基本的に、「Login.cshtml」を除いて、ユーザーがログインしていないときにすべてのページにアクセスできないように制限したいと考えています。

私の「_PageStart.cshtml」では、ユーザーがログインしていない場合、ページは「Login.cshtml」にリダイレクトされます。「Login.cshtml」が要求されるため、「_Pagestar.cshtml」が実行され、ユーザーがログインしていないことが検出され、その結果、無限のリダイレクトが作成されます。

問題は次のとおりです。

  1. 「_PageStart.cshtml」はリダイレクトを配置するのに最適な場所ですか?
  2. 質問 1 の答えが「はい」の場合、特定のページに PageStart を適用しない方法は?
  3. 質問 1 の答えが「いいえ」の場合、どこで? ヘルパーを作成してすべてのページに配置する必要がありますか?
4

1 に答える 1

0

保護したいページを別のフォルダーに配置し、「メンバー」などのタイトルを付けます。このフォルダーに、次のコードを含む _PageStart.cshtml を配置します。

@{ 
    WebSecurity.RequireAuthenticatedUser();
}

スターター サイトに示されている標準のディレクトリ構造を使用している場合、Login.cshtml は Account ディレクトリにある必要があり、ユーザーが認証せずに保護されたディレクトリにアクセスしようとすると、WebSecurity ヘルパーはユーザーを Login.cshtml ページに自動的にリダイレクトします。メンバーシップ。

ジェロッド

于 2012-01-14T05:59:38.857 に答える