我有一个使用VS2012设计的MVC4项目,我将其迁移到了MVC5。我的项目中没有使用OAuth或外部登录。
我现在陷入了困境,因为我的旧项目使用了默认的SimpleMembership和相关的数据库模式。但现在我正在迁移到一个新版本,默认的数据库模式大不相同。
我可以使用我的自定义表,但在迁移用户时需要帮助。由于数据库成员身份模式不同,我真的很困惑,不知道该怎么办。我唯一能想到的就是重新生成用户密码,并通过电子邮件发送给我的用户,希望他们阅读电子邮件。
我是否可以使用其他方式/方法将用户迁移到新的数据库模式,而不必篡改他们的密码?
在VS 2013中,当您创建文件-->新项目-->MVC时,默认身份验证机制设置为个人用户帐户,从而使用新ASP创建项目。NET标识之类的东西。
这包括了一堆新的库,例如:
- 微软。AspNet。身份Core.dll
- 微软。AspNet。身份EntityFramework.dll
- 许多其他dll
此外,项目模板还在Models文件夹中添加了一个新的IdentityModels.cs
文件。
查看该文件,您会注意到一个实现IdentityUser
的ApplicationUser
类。
还有一个ApplicationDbContext
等。。。查看AccountController
内部,您将看到一个UserManager
属性。
所有这些新东西都与新的ASP有关。NET标识
如果您要创建一个新项目,但这次将身份验证机制更改为无身份验证,您会注意到。NET标识的东西就在那里。
在VS 2012中,当您创建一个新项目并选择Internet Application
时,由于WebMatrix.Data and WebMatrix.WebData
dll(顺便说一句,MVC 5.0应用程序中不存在),默认情况下它将使用SimpleMembership
。
此外,如果您查看AccountController
,您会注意到[InitializeSimpleMembership]
操作过滤器触发了数据库的创建。
到目前为止,我还没有回答您的问题,但我的理解(我必须提到,我没有尝试或测试过)是,您可以继续在ASP中使用SimpleMembership
。NET MVC 5.0应用程序一样长(当然),因为您不包括任何ASP。NET Identity之类的东西。
当你说">我正在迁移到一个新版本"时,你的意思是你只是在更新MVC dll的版本吗?
或
你的意思是说你现在正在使用新的ASP。NET Identity的东西,而您现在正在寻找一种方法来将您的用户从SimpleMembership迁移到新的Identity TABLES?
正如我所说,我还没有尝试过从MVC 4.0迁移到5.0,但如果必须这样做,我只会在不接触或添加任何与ASP相关的东西的情况下升级MVC dll和其他东西。NET标识。
我将继续使用SimpleMembership。
不确定这是否会有所帮助,但这是我对事情的理解。
否则,你可能想看看这个后