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