WebPages / WebMatrix - Как не применять PageStart на странице? - PullRequest
1 голос
/ 14 января 2012

У меня есть эти страницы:

  1. _PageStart.cshtml
  2. Index.cshtml
  3. Login.cshtml

    .

    .

    .

n.OtherPage.cshtml

По сути, я хочу ограничить доступ пользователя ко всем страницам, когда он не вошел в систему, за одним исключением, «Login.cshtml».

В моем "_PageStart.cshtml", когда пользователь не вошел в систему, страница перенаправляется на "Login.cshtml".Поскольку запрашивается «Login.cshtml», будет запущен «_Pagestar.cshtml», который обнаружит, что пользователь не вошел в систему, в результате будет создано бесконечное перенаправление.

Теперь вопрос такой:

  1. Является ли "_PageStart.cshtml" лучшим местом для перенаправления?
  2. Если ответ на вопрос один да, то как не применять PageStart на определенной странице?
  3. Если ответ на вопрос один - нет, то где?Должен ли я создать помощника и поместить его на каждой странице?

1 Ответ

0 голосов
/ 14 января 2012

Поместите страницы, которые вы хотите защитить, в другую папку и назовите ее как «Члены».В эту папку поместите свой _PageStart.cshtml со следующим кодом:

@{ 
    WebSecurity.RequireAuthenticatedUser();
}

Если вы используете стандартную структуру каталогов, показанную на начальном сайте, тогда ваш Login.cshtml должен находиться в каталоге Account и помощнике WebSecurity.автоматически перенаправит пользователей обратно на вашу страницу Login.cshtml, если они попытаются получить доступ к вашему защищенному каталогу без аутентификации своего членства.

Jerrod

...