其中是使用Membership.CreateUser时持久化的数据

本文关键字:持久化 数据 CreateUser Membership | 更新日期: 2023-09-27 18:00:27

我正在一个.NET MVC 3的剃刀网站上工作,我想知道在使用Membership.CreateUser时数据在哪里持久化?

Onhttp://msdn.microsoft.com/en-us/library/d8t4h2es.aspx上面写着:

CreateUser将新用户添加到数据存储,并为新创建的用户返回MembershipUser对象。

那是哪个数据存储?应用程序数据中的本地.sdf文件没有任何用户凭据表?

也可以提供一些很好的链接来帮助我理解.NET MVC3安全模型。

其中是使用Membership.CreateUser时持久化的数据

默认情况下,它使用App_Data中的存储,创建ASPNETDB.mdf文件,至少在web表单中是这样。MVC的行为是一样的,只是自动创建DB部分。您可以使用aspnet_regiis工具在任何SQL数据库中生成所需的表,或者滚动您自己的提供程序,并像在web表单中那样更新<system.web><membership>元素中的成员资格注册。。

您需要设置一个成员数据库。

如果这不存在,你可以按照这个博客上的步骤手动完成

您需要运行aspnet_regsql.exe实用程序并按照向导中的步骤进行操作。这将创建您需要的各种表。

MSDN 中的更多信息

ASP.NET成员身份为您提供了一种内置的方法来验证和存储用户凭据。

默认提供程序将成员身份信息存储在Microsoft SQL Server数据库中。

在设置您的成员资格提供程序时,您将运行regsql命令,该命令将在您的数据存储(无论您使用什么存储)中创建架构,并将连接字符串放入web.config中。您可以使用.Net提供程序的任何数据存储(ORACLE、MYSql、SQLite、SQL Server、MS Access等)。

据我所知,ASP.NET MVC 1.0和2.0中捆绑的安全模型是基于ASP.NET Membership API的,因此ASP.NET MVC本身没有特殊的安全API。它基于现有的ASP.NET成员身份

当您安装成员资格时,您正在创建自定义表和存储的proc。因此,您提到的用户应该存储在SQL数据库中。

从这个链接中,您可以看到安装后将有一个aspnet_users表,它是用户存储的。

我不知道ASP.NET MVC 3.0是否有一个安全的API,因为我很久以前就删除了ASP.NET MVC附带的ASP.NET成员类,并且我已经实现了自己。

此外,如果User有特殊含义,并且在您的问题域中除了用户名/密码之外还有其他属性,我强烈建议删除ASP.NET MVC成员类。

您仍然可以使用类似MvcMembership入门工具包DLL的东西与MVC项目中的内置MS Membership类和函数进行交互。

https://github.com/TroyGoode/MembershipStarterKit

希望这能有所帮助!