将MVC 5 Identity添加到现有项目中

12
我是一名新手程序员,在我的第一个编码项目中学习。我从MVC 4开始,成功实现了单个实体的CRUD操作。我决定尝试解决安全问题。当Visual Studio制作我的MVC 4项目时,它添加了一个账户模型、视图和控制器。我已经将我的项目升级到MVC 5和EF 6,使用这里描述的过程。现在我想用MVC 5脚手架的Identity模型、视图和控制器替换MVC 4的安全代码。这是否可能?如果可能,怎么做?

如果你的网站没有真正的用户,我建议你创建一个新的MVC 5项目,并将新的AccountController内容复制过去。 - vidalsasoon
我同意@Jim Hill的观点。不过,你可以尝试这个https://dev59.com/rWIj5IYBdhLWcg3wv3e2#19940600,但即使如此,我也不确定Identity是否与MVC 4兼容。 - stink
我同意@vidalsasoon的观点 - 如果你刚开始学习,你不想通过让一个新框架与旧框架一起工作来学习 - 你会讨厌它。相反,将你的单个实体带到你的MVC 5项目中,然后从那里开始。我考虑回答这篇文章,但我没有时间去做所有需要的研究和工作。 - Jack
1个回答

6
具有讽刺意味的是,我几个晚上前刚解决了这个问题...
我建议您直接使用全新的MVC 5应用程序。话虽如此,我不确定您的应用程序开发进展到哪个阶段。
您现在使用什么安全性措施?我假设您正在使用SimpleMembership?如果是的话,@Kevin Junghans有一篇非常好的文章/项目,涉及将simplemembership与应用程序分离
理论上,您可以使用它来分离simplemembership,然后使用这里找到的答案添加identity。
我的经验告诉我要重新开始,但再次强调,我不确定您的开发进度,因此不知道这是否可行。如果可以的话,我建议您这样做,并随着开发逐步添加控制器。

1
除了@Dylan的回答之外,我现在还写了一篇关于ASP.NET Identity的新文章,它是MVC 5中使用的新成员资格系统。它被称为“将ASP.NET Identify从您的MVC 5应用程序解耦”[http://kevin-junghans.blogspot.com/2013/11/decoupling-aspnet-identify-from-your.html]。我已经编写了SimpleSecurity [http://simplesecurity.codeplex.com/]的新版本,它使用ASP.NET Identity。这基本上具有与SimpleMembership相同的API,使其易于插入最初使用MVC 4开发并升级到MVC 5的应用程序中。 - Kevin Junghans
2
@Dylan,我开始的项目是MVC 4,因此它包含了MVC 4的标准成员资格。我从未在我的软件中实现过它,也从未注册过用户,因为这是我的第一个代码项目,我还没有准备好去解决它。当我听说MVC 5有一个新版本时,我想确保在开始这部分代码之前进行升级。我已经足够进展了,发现从一个新项目开始太困难了。最终,我创建了一个单独的MVC 5项目,并将成员资格部分复制到我的旧项目中。这很痛苦,但是是一个很好的学习经验。 - Jim Hill
啊,好的。听起来有点痛苦,但是如果你是为了学习而进行这个项目,最后对会员流程有更多的了解,那么我想这就是值得的 :) - Dylan Corriveau
Jim,我也想做同样的事情。我已经下载了Visual Studio 2013 Express,以便获取完整的mvc web应用程序项目文件。我有一个现有的MVC 4应用程序,我已经更新到MVC 5。现在我需要升级所有的Identity和membership内容。你能提供任何信息吗?你认为你可以列出痛点等答案吗?如果你能做到,我一定会点赞的。 - Eric Bishard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接