【问题标题】:ASP.NET MVC 3 User AuthenticationASP.NET MVC 3 用户身份验证
【发布时间】:2012-02-23 12:53:28
【问题描述】:

做简单用户验证(账号登录)的常用方法有哪些?

另外,每个区域可以有不同的身份验证方案吗?

编辑

我正在创建一个电子商务网站,该网站需要为每个用户提供受保护的操作。那么如何去做呢?它需要能够只允许经过身份验证的用户访问他们的信息。

【问题讨论】:

  • 那为什么还要发明轮子呢?从电子商务网站的良好基础平台开始,如果您使用 .NET,请从 nopcommerce.com 开始,这是一个 ASP.NET 4.0 解决方案。

标签: asp.net-mvc


【解决方案1】:

在 MVC 中进行身份验证时,您有多种选择:

内置的表单身份验证可以让您根据角色、用户等限制对应用程序不同区域的访问,并且使用[Authorize] 属性很容易实现。

以下情况需要用户登录:

[Authorize]
public ActionResult YourActionNameGoesHere()
{
}

同样,以下要求用户登录并成为管理员:

[Authorize(Roles="Administrator")]
public ActionResult YourActionNameGoesHere()
{
}

这些只是完成它的几种方法,正如您所见,有许多种不同的方法来完成它 - 我希望这可能有助于您做出决定。 p>

【讨论】:

  • MVC 团队的安全专家 Levi 指出,只有一种安全的方式来执行身份验证。看我的回答。
【解决方案2】:

据 MVC 团队的安全专家称

保护您的 MVC 应用程序的唯一受支持的方法是拥有一个 具有 [Authorize] 属性的基类,然后让每个 控制器类型是基类型的子类。 任何其他方式都会打开一个 安全漏洞。

http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx

【讨论】:

  • 关于子类化的引用仅适用于 MVC 版本 1 和 2。 MVC3+ 可以使用 GlobalActionFilter。
【解决方案3】:

当您使用 VS 2010 创建 Internet 应用程序时,请转到您的模型文件夹。您将在那里看到一个 cs 文件。该文件包含用户身份验证的示例结构

请记住:ASP.NET MVC 不是一个单独的框架。它位于 ASP.NET 之上,因此您也可以在 MVC 上使用 System.Web.Security.Membership 类。

另外,请检查您的视图文件夹中的帐户文件夹。您将在那里查看一些示例。

希望这会有所帮助。

【讨论】:

  • 当使用 MVC3 创建一个空的 web 应用程序时,这些文件夹和类不包括在内,所以这可能有点误导......
  • @Yngve 你看到了吗,我用'当你创建一个互联网应用程序'来清除它......我猜没有混淆。
  • @CoffeeAddict 不适合我。
猜你喜欢
  • 2013-08-29
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多