1

我有这些页面:

  1. _PageStart.cshtml
  2. 索引.cshtml
  3. 登录.cshtml

    .

    .

    .

n. 其他页面.cshtml

基本上,我想限制用户在未登录时访问所有页面,但有一个例外,“Login.cshtml”。

在我的“_PageStart.cshtml”中,当用户未登录时,页面被重定向到“Login.cshtml”。由于请求了“Login.cshtml”,“_Pagestar.cshtml”将运行并检测用户未登录,因此将创建无限重定向。

现在的问题是:

  1. “_PageStart.cshtml”是放置重定向的最佳位置吗?
  2. 如果问题一的答案是肯定的,那么如何不在特定页面上应用 PageStart?
  3. 如果问题一的答案是否定的,那么在哪里?我应该创建一个助手并将其放在每个页面中吗?
4

1 回答 1

0

将要保护的页面放在不同的文件夹中,并将其命名为“成员”。在此文件夹中放置您的 _PageStart.cshtml 并使用以下代码:

@{ 
    WebSecurity.RequireAuthenticatedUser();
}

如果您使用的是 Starter Site 中所示的标准目录结构,那么您的 Login.cshtml 应该位于 Account 目录中,如果用户尝试访问您的受保护目录而不对其进行身份验证,WebSecurity 助手将自动将用户重定向回您的 Login.cshtml 页面会员资格。

杰罗德

于 2012-01-14T05:59:38.857 回答