我的任务是将现有成熟的 ASP.NET 2.0 网站迁移到 NHibernate、Mono 和 MySQL 或 postgres。我对成员(member)提供者如何对密码加盐感到有些困惑。如果我进行切换并使用 MySQL 成员资格提供程序 ( outlined in this question ) 或 AspSqlProvider , 现有用户可以登录吗?
我想我问这个问题会更容易:我到底如何才能访问 ASP.NET 成员提供程序使用的加密 key ,该提供程序对密码进行加盐,以便我可以在第三方提供程序中使用相同的 key ?
最佳答案
您指的是该网站有多少用户?它是可公开访问的,还是在公司 LAN 中使用的?
将您现有的成员(member)数据库转移到 MySQL 提供程序生成的模式可能会很有趣。我什至不确定他们使用的表模式有多相似,尽管我希望它们非常接近。
如果用户数量比较少,我会强烈考虑在切换到新系统时强制重置密码。
edit 刚看到你在我打字时添加了 postgres - 如果你的数据库选择仍然悬而未决,使用基于 ORM 的提供程序可能会更容易,它为你提供了一些可移植性(和一致的行为)
如果使用 nhibernate,我最近在寻找一个基于 nhibernate 的成员(member)提供者并最终选择了这个:Fluent NHibernate Membership Provider (CodeProject) .只需最少的修改就可以为我工作,但它适用于没有这些顾虑的新建项目。虽然它是单声道的:)
找到这个:Membership Providers - 请参阅“DataSchema”部分,aspnet_Membership 表。看起来获取盐不会成为问题,因此您应该能够在不重置密码的情况下使它正常工作。
关于mysql - 对现有用户使用 MySql ASP.NET 成员资格提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811355/