目前,我正在使用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);
这是解决此问题的最佳方法还是其他解决方案?
先感谢您!
WebSecurity.CreateUserAndAcccount允许您定制填充UserProfile实体的属性的方式,但是您必须更新UserProfile类才能使其直接使用。您可以在此处阅读有关自定义SimpleMembership的更多信息。如果仅使用创建MVC 4项目时Internet模板生成的内容,则UserProfile是使用的默认实体/表。要使用另一个表,您将需要更改WebSecurity.InitializeDatabaseConnection中的参数。指向现有表并定义用户ID列和用户名列。用户ID必须是整数,以便可以与SimpleMembership使用的webpages_Membership表联接,以存储哈希密码和身份验证所需的其他信息。
Internet模板生成的代码使用惰性加载方法初始化带有InitializeSimpleMembershipAttribute的数据库,您可以在项目的Filters文件夹中找到该属性。在此处调用InitializeDatabaseConnection。如果开发人员不使用表单身份验证并且应用程序仍然可以工作,则也可以通过这种方式来实现。如果您使用表单身份验证,则我更喜欢这里描述的更直接的数据库初始化方法。
根据您的应用程序需求,SimpleMembership有很多选项,我将仅举几个。1)自定义UserProfile,使其具有现有数据库中的属性,如果有任何现有数据,则将其迁移。2)修改InitializeDatabaseConnection和CreateUserAndAccount以使用您现有的表。3)将外键添加到UserProfile,这将允许您将SimpleMembership中的用户加入到现有表中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句