使用Membership.CreateUser时数据在哪里保持不变?

时间:2011-06-25 13:17:04

标签: c# asp.net-mvc security asp.net-mvc-3

我正在使用.NET MVC 3,razor网站,我想知道在使用Membership.CreateUser时数据的持久性?

http://msdn.microsoft.com/en-us/library/d8t4h2es.aspx上说:

  

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

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

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

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

您需要设置会员资格数据库。

如果不存在,您可以按照this blog

上的步骤手动执行此操作

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

More information from the MSDN

  

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

     

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

答案 2 :(得分:0)

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

安装成员资格时,您将创建自定义表和存储过程。所以你提到的用户应该存储在SQL数据库中。

this链接中您可以看到安装后会显示用户存储的 aspnet_users 表。

我不知道ASP.NET MVC 3.0是否有安全API,因为我很久以前已经删除了ASP.NET MVC附带的ASP.NET Membership类,我已经实现了。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您仍然可以使用类似MvcMembership入门套件DLL的内容与MVC项目中的内置MS Membership类和函数进行交互。

https://github.com/TroyGoode/MembershipStarterKit

希望这有帮助!