gpt4 book ai didi

asp.net - 尽管有 MSDN 解决方法,散列法在 .Net 4.0 中不再有效

转载 作者:行者123 更新时间:2023-12-02 02:32:01 25 4
gpt4 key购买 nike

我在生产中有一个现有的应用程序,它使用 SqlMembershipProvider 并具有指定的机器 key :

<machineKey validationKey="..." decryptionKey="..." 
validation="SHA1" decryption="AES"/>

目前在.Net 2.0 AppPool下运行。

我正在编写一个必须使用现有数据库的新应用程序,我有一个备份。我正在尝试让 SqlMembershipProvider 使用它(它确实如此),但我无法使用已知的用户名/密码。这个帐户在生产环境中工作,密码哈希和盐在两个数据库(生产环境和我的)上都是相同的。但是,在 SqlMembershipProvider 将数据库中的密码与输入的散列密码进行比较时,它们并不相同。

本文建议在 .Net 4.0 中使用 ASP.Net 中的默认哈希算法进行重大更改: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes

但是我已经按照建议指定了机器 key 。此外,我已经剥离了 .Net 4.0 组件并将其放回到 3.5(即 CLR 2)并且输入的密码的哈希值仍然相同。

此外,我尝试将这个新的临时应用程序重新部署到同一台服务器上,但它仍然无法登录(尽管我无法验证它是否因密码哈希不匹配而失败)。

我还能在这里尝试什么?

最佳答案

您需要在 web.config 中指定成员资格提供程序的 hashAlgorithmType,因为 .net 4 已更改默认值。

您想要的值很可能是 SHA1。

更多详情请查看以下页面:http://geekswithblogs.net/DavidHoerster/archive/2010/06/15/asp.net-membership-password-hash----.net-3.5-to-.net-4.aspx

关于asp.net - 尽管有 MSDN 解决方法,散列法在 .Net 4.0 中不再有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3438197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com