新MVC4 RTM互联网应用模板使用SimpleMembership提供商这里descibed SimpleMembership
我现有的MVC网站使用ASP.Membership框架和理想,我想这些表中的用户数据迁移到新的SimpleMembership表。 我为希望这样做的原因是:
- 与我的数据库,它使用EF其余清洁整合
- 支持Azure和OAuth的开箱即用
- 使用最新的MVC4 RTM控制器/浏览次数,而无需修改
- 我一直认为现有成员执行是我需要的东西有点臃肿
所以,我今天写了一个SQL脚本,以在现有的ASP.Net成员表中的数据迁移到新的简单会员表。 这可以被发现在这里
在我的MVC 4测试网站的登录密码验证失败。 我相信SimpleMembership使用不同的密码算法中比老会员框架作为SimpleMemberShip框架下创建新密码看很多时间。
所以我的问题是,因为我用的是老ASP.Net成员资格提供者和用户的原始密码是无法挽回的“哈希”密码格式,做什么选择我都拿到SimpleMembership供应商合作。
我猜有些选项是:
- 让我的用户重置其密码
- 获取SimpleMembership供应商使用相同的密码算法中的老ASP.Net会员供应商。
- 恢复新的MVC 4 RTM互联网应用程序模板使用旧的ASP.Net成员资格提供。 这对我来说是最不理想的选择,因为我想用SimpleMemberShip框架。
我怀疑很多人也在寻找到他们现有的会员数据库迁移到新的SimpleMemberShip提供商。
任何帮助极大的赞赏。
干杯
吉姆
我想保罗浮出水面的评论的情况下,任何人都怀念它,并提出他的解决办法是我见过的最好的。
http://pretzelsteelersfan.blogspot.com/2012/11/migrating-legacy-apps-to-new.html
感谢保罗
您可以访问明文密码,当用户登录时,它给你另一种选择:
- 保留旧的密码保存在一个单独的表
- 在登录时,先用SimpleMembership方法
- 如果失败,对使用旧的哈希算法旧密码表检查(你需要确保明文密码仍然是在上下文中)
- 如果成功,更新SimpleMembership表,从旧的密码表中删除
用户不需要了解的变化,而活跃用户将有更安全的哈希值。 如果您想强制安全升级在未来,你可以警告说,他们的帐户将在一年不活动之后被删除的用户,只退两步系统。
我有一个类似的问题,我应该写这样一个教程/博客文章,但我的解决办法是下面添加到我的web.config(相当于选项#2):
<system.web>
<membership hashAlgorithmType="SHA1" defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider" etc.../>
</providers>
</membership>
<machineKey validation="SHA1" />
...
</system.web>
上面的代码中有趣的部分是“hashAlgorithmType”。 该设置为SHA1将使用旧asp.net成员散列算法。
我也是在类似的位置 - 我不是要问我的用户更新他们的密码或保持与特定的哈希算法。
希望这可以帮助! -Sig