Visual studio 2015 必须为VS2015升级更改计算机密钥后密码不起作用

Visual studio 2015 必须为VS2015升级更改计算机密钥后密码不起作用,visual-studio-2015,asp.net-membership,Visual Studio 2015,Asp.net Membership,我正在尝试将VS2010网站转换为VS2015 Web应用程序(C#)。我遇到的最新问题是VS2015需要SHA1或HMACSHA256384512。这是一个旧站点,它用于3DES。它使用带有加密密码的.NET 2.0成员身份。我读过一篇文章,说.NET成员在拥有加密密码时使用机器密钥加密。我知道我需要切换到散列密码,这是要做的项目列表中的一项 When using <machineKey compatibilityMode="Framework45" /> or the Machi

我正在尝试将VS2010网站转换为VS2015 Web应用程序(C#)。我遇到的最新问题是VS2015需要SHA1或HMACSHA256384512。这是一个旧站点,它用于3DES。它使用带有加密密码的.NET 2.0成员身份。我读过一篇文章,说.NET成员在拥有加密密码时使用机器密钥加密。我知道我需要切换到散列密码,这是要做的项目列表中的一项

When using <machineKey compatibilityMode="Framework45" /> or the MachineKey.Protect and 
 MachineKey.Unprotect APIs, the 'validation' attribute must be one of these values: 
 SHA1, HMACSHA256, HMACSHA384, HMACSHA512, or alg:[KeyedHashAlgorithm]
使用或使用机器钥匙时。保护和
MachineKey.Unprotect API,“validation”属性必须是以下值之一:
SHA1、HMACSHA256、HMACSHA384、HMACSHA512或alg:[关键字哈希算法]
问题是,我似乎无法登录后,这已经改变。我认为这是因为验证使用了不同的算法,因此没有找到匹配项


是否仍然可以保留验证,而不必解密每个密码,然后对其进行哈希或重新加密?或者我应该把所有密码都转换成散列来避免这种情况?或者还有其他选择吗?

好的。事实证明,有一个兼容模式,似乎工作,并允许我不改变加密。您只需将compatibilityMode=“Framework20SP2”添加到web.config中的machineKey,如下所示:

<machineKey compatibilityMode="Framework20SP2" validationKey="..."
    decryptionKey="..." validation="3DES" />

希望这能帮助其他遇到这种情况的人