.net 4.0 从3.5升级到ASP.net 4.0后登录失败

.net 4.0 从3.5升级到ASP.net 4.0后登录失败,.net-4.0,upgrade,membership,.net 4.0,Upgrade,Membership,我无法使用任何使用.net 4.0版本应用程序的会员帐户登录。它失败就像它是错误的密码,FailedPasswordAttemptCount在my_aspnet_成员表中递增。 (我正在使用mysql成员资格提供程序的成员资格。) 我可以创建新用户。它们出现在数据库中。但我无法使用新用户凭据登录(是,IsApproved为1) 一个线索是,对于使用asp.net 4.0版本创建的用户来说,数据库中的哈希密码更长,例如3lwRden4e4Cm+cWVY/spa8oC3XGiKyQ2UWs5fxQ5

我无法使用任何使用.net 4.0版本应用程序的会员帐户登录。它失败就像它是错误的密码,FailedPasswordAttemptCount在my_aspnet_成员表中递增。 (我正在使用mysql成员资格提供程序的成员资格。)

我可以创建新用户。它们出现在数据库中。但我无法使用新用户凭据登录(是,IsApproved为1)

一个线索是,对于使用asp.net 4.0版本创建的用户来说,数据库中的哈希密码更长,例如3lwRden4e4Cm+cWVY/spa8oC3XGiKyQ2UWs5fxQ5l7g=,而旧的.net 3.5密码都类似于+JQf1EcttK+3fZiFpbBANKVa92c=

当使用.net 3.5版本连接到同一数据库时,我仍然可以登录,但只能登录到旧帐户,而不能登录使用.net 4.0版本创建的新帐户。 4.0版本无法登录到任何帐户


我试着在我的测试系统上删除整个数据库,然后在第一次运行时自动创建成员表,但仍然是一样的,可以创建用户,但无法登录。

我遇到了完全相同的问题。我有3.5和4.0版本的web应用程序,只有“旧”帐户可以在3.5实例上工作

希望有人能给出答案

更新:

我将passwordFormat更改为Clear,并且我能够创建一个新用户并使用4.0应用程序登录。看起来密码的散列方式发生了变化

更新2:

我能够使其中一个“旧”帐户正常工作。通过以上对passwordFormat的更改,我将我的\u aspnet\u成员资格中的passwordFormat列更改为0,并在同一个表中手动设置密码。虽然这是复杂和混乱的,它让帐户得到它。我将尝试运行密码重置,看看是否可以修复已损坏的帐户。

请参阅:

.net 4.0的默认哈希算法已更改。默认哈希算法现在是HMACSHA256。ASP.NET的早期版本使用较旧的HMACSHA1算法

要将ASP.NET 4 Web应用程序配置为使用较旧的HMACSHA1算法,请将以下设置添加到Web.config文件的system.Web部分:

<machineKey validation="SHA1"/>


先生,您为我保留了这一天+1这是一个古老的答案,但在2020年仍然有效!我花了好几个小时才找到这个!