1

目前我正在使用 MVC4 应用程序和数据库。我想使用默认登录和注册过程/方法。

我正在使用包含用户信息的表格,例如名字、姓氏、密码、电子邮件......

我只想将我的数据库与默认的注册/登录方法一起使用。在互联网上,我阅读了几个主题,但没有一个能给我正确的答案。

这是我已经做过的:

1 使用 SimpleMembership

所以我补充说:

<add key="enableSimpleMembership" value="true">

2 向 RegisterModel 添加字段

3 也更改 CreateUserAndAccount 参数:

WebSecurity.CreateUserAndAccount(model.Email, model.Password, new {FirstName = model.UserName, SurName = model.UserName}, false);

这是解决此问题的最佳方法还是有其他解决方案?

先感谢您!

4

1 回答 1

2

WebSecurity.CreateUserAndAcccount允许您定制如何填充UserProfile实体的属性,但您必须更新UserProfile类才能使其开箱即用。您可以在此处阅读有关自定义 SimpleMembership 的更多信息。 如果您只使用在创建 MVC 4 项目时由 Internet 模板生成的内容,则UserProfile是使用的默认实体/表。要使用另一个表,您需要更改WebSecurity.InitializeDatabaseConnection中的参数指向您现有的表并定义用户 ID 列和用户名列是什么。用户 ID 必须是整数,以便它可以与 SimpleMembership 使用的 pages_Membership 表连接,以存储散列密码和身份验证所需的其他信息。

Internet 模板生成的代码使用延迟加载方法使用InitializeSimpleMembershipAttribute初始化数据库,您可以在项目的 Filters 文件夹中找到它。这是调用InitializeDatabaseConnection的地方。如果开发人员不使用表单身份验证并且应用程序仍然可以工作,它也会以这种方式实现。如果您使用表单身份验证,我更喜欢这里描述的更直接的数据库初始化方法

SimpleMembership 有很多选项,具体取决于您的应用程序要求,我将只给您一些。1) 自定义UserProfile以拥有现有数据库中的属性,如果有任何现有数据,请将其迁移过来。2) 修改InitializeDatabaseConnectionCreateUserAndAccount以使用您现有的表。3) 向UserProfile添加一个外键,这将允许您将 SimpleMembership 中的用户加入到现有表中。

于 2013-10-04T12:41:34.597 回答