这些 ASP.NET 身份、会员资格是什么?什么时候使用它们?

What are these ASP.NET Identity, Memberships? When to use them?

我有一个使用 ASP.NET 开发的网站,DB 是 MYSQL。在那里,用户身份验证是针对 table.

中的注册用户完成的

那么这个ASP.NET身份是什么?会员资格?事物。什么时候使用它们? 他们是安全的方法吗?它们与我目前正在做的有什么不同吗?

非常感谢。

Aspnet.Identity 是验证用户身份的方法。它使您的生活变得简单,为 cookie 生成创建代码、维护数据库关系、密码恢复、密码加密、电子邮件集成、将身份验证扩展到 link 与 Twitter、Facebook、Google 等。它是一个更多 "user authentication against registered users inside a table."

您可以在此处找到有关身份的更多信息:http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity

Microsoft 一直在不断改进 Identity,使其更加安全。但是,方法总是有的,如果开发人员犯了错误,那将无济于事。

但是,考虑到所有更新 - 身份代码发生了很大变化,以至于 1 年前有效的解决方案不再有效。需要深入挖掘才能进行简单的自定义更改。

以下是如何将 Identity 与 MySQL 等自定义存储提供程序集成:http://www.asp.net/identity/overview/getting-started/aspnet-identity-using-mysql-storage-with-an-entityframework-mysql-provider

请注意,默认情况下主键是 GUID,目前没有简单的方法将 MySQL 集成的主键更改为 INT。您可以在此处找到更多详细信息:https://forums.asp.net/t/2062668.aspx?How+to+change+primary+key+for+Identity+with+MySQL+as+storage+provider

此外,MySQL 和 LINQ 集成存在很多问题。延迟加载问题等。即使对身份代码进行较小的自定义,这也会非常明显。如果你想包括用于用户身份验证的身份,我强烈建议转移到 MS SQL 而不是 MySQL

ASP.NET membership: 为您提供了一种内置的方式来验证和存储用户凭据。 ASP.NET 会员因此可以帮助您管理网站中的用户身份验证。您可以使用 ASP.NET 成员资格和 ASP.NET 表单身份验证,通过与 ASP.NET 登录控件一起使用来创建一个完整的用户身份验证系统。

ASP.NET 会员支持设施:

  • 正在创建新用户和密码。
  • 在 Microsoft SQL 服务器、Active Directory 或备用数据存储中存储成员信息(用户名、密码和支持数据)。
  • 正在对访问您网站的用户进行身份验证。您可以通过编程方式对用户进行身份验证,也可以使用 ASP.NET 登录控件创建一个完整的身份验证系统,只需很少或不需要代码。
  • 管理密码,包括创建、更改和重置密码。 - 根据您选择的会员选项,会员系统还可以提供一个自动密码重置系统,该系统接受用户提供的问题和回复。
  • 为经过身份验证的用户公开唯一标识,您可以在自己的应用程序中使用该标识,并且还与 ASP.NET 个性化和角色管理(授权)系统集成。
  • 指定自定义会员提供程序,它允许您替换自己的代码来管理会员并在自定义数据存储中维护会员数据

何时使用它们

当您想使用 ASP.NET 登录控件或自定义登录表单设计创建 login/sign 表单身份验证时,您可以使用 ASP.NET 成员资格。

这是关于如何使用 ASP.NET 会员资格 https://msdn.microsoft.com/en-us/library/ms731049(v=vs.110).aspx

的完整指南