使用simplemembershipmvc4与现有数据库
本文关键字:数据库 simplemembershipmvc4 使用 | 更新日期: 2023-09-27 18:18:24
我正在使用MVC4应用程序和现有数据库。我想使用在simplemember MVC4中定义的默认登录和注册。
我正在使用一个包含员工信息的表,如EmployeID, employeename,密码,电子邮件…在SimpleMembershipInitializer
I改变
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
to my own:
WebSecurity.InitializeDatabaseConnection("HRContext", "Employee", "EmployeeId", "EmployeName", autoCreateTables: true);
并改变AccountController
但无效
我只是想使用我的数据库与默认的注册/登录方法。我读了几个题目,但是没有一个能给我一个我需要的。
由于各种原因,您不能仅仅更改表并期望它正常工作。事实上,除非您非常非常幸运,否则这很可能根本不起作用,因为simplemember有一个硬编码的密码散列算法,您无法覆盖它。因此,除非你的原始web应用程序使用相同的哈希算法(假设它使用哈希),否则它根本不会识别任何用户的密码。
然而,更重要的是,Employee表可能不是simplemember所期望的正确模式。同样,这是在simplemember中硬编码的,不是您可以更改的。simplemember将尝试创建自己的表,并忽略您的密码和其他需要的字段(除了用户名和userid,假设userid的格式正确)simplemember确实提供了一种非常灵活的方式来扩展默认表,但是对于它的基本凭据部分,您要受其模式的支配。
如果您需要使用这个现有的系统,那么您将不得不使用遗留的Membership系统并创建一个自定义的会员资格提供者。关于如何做到这一点,Stack Overflow上已经有数百甚至数千个问题和答案。