我只是在摆弄一些设置以更好地了解SimpleMembershipProvider。 背景信息:
MVC 4,.Net 4.0和实体框架。 我也使用标准的互联网Mvc应用程序(为方便起见)。
问题/或问题:
在Web.config文件中,我已经设置hashalgorithmType应该是SHA512,但是当我注册一个成员时,数据库中的结果只有68个字符长。 SHA512应为128个字符(快速谷歌)。
为什么?我还需要改变一些设置吗?或者我是否需要覆盖一些“setpassword”方法来明确使用SHA512?
或者我应该使用外部来源,例如Bcrypt并以某种方式将它整合到我当前的解决方案中?(在这种情况下,如果有人能指出我正确的方向进一步阅读,那将是很好的)
web.config代码:
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider" hashAlgorithmType="SHA512">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
答案 0 :(得分:1)
我不相信您可以像在较旧的成员资格提供程序中那样更改SimpleMembership中的哈希算法。 Answer in this QA describes the hashing algorithm used in SimpleMembership。
由于您刚刚开始学习SimpleMembership,我想我应该提到它已经depreciated for ASP.NET Identity。您可能希望花时间学习这一点,因为这是微软未来的发展方向。它更加灵活,您可以插入任何您需要使用的散列算法。