必须为 VS2015 升级更改机器密钥后密码不起作用
Passwords not working after having to change machine key for VS2015 upgrade
我正在尝试将 VS2010 网站转换为 VS2015 Web 应用程序 (C#)。我 运行 关注的最新一期是 VS2015 需要 SHA1 或 HMACSHA256,384,512。这是一个旧站点,它用于 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]
问题是更改后我似乎无法登录。我假设这是因为验证使用了不同的算法,所以没有找到匹配项。
有没有办法保留验证而不必解密每个密码然后对其进行散列或重新加密?还是我应该将所有密码转换为散列密码以避免这种情况?或者还有其他选择吗?
好的。事实证明有一种兼容模式似乎可以工作并且允许我不更改加密。您所要做的就是将 compatibilityMode="Framework20SP2" 添加到 web.config 中的 machineKey,如下所示:
<machineKey compatibilityMode="Framework20SP2" validationKey="..."
decryptionKey="..." validation="3DES" />
希望这对遇到此问题的其他人有所帮助。
我正在尝试将 VS2010 网站转换为 VS2015 Web 应用程序 (C#)。我 运行 关注的最新一期是 VS2015 需要 SHA1 或 HMACSHA256,384,512。这是一个旧站点,它用于 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]
问题是更改后我似乎无法登录。我假设这是因为验证使用了不同的算法,所以没有找到匹配项。
有没有办法保留验证而不必解密每个密码然后对其进行散列或重新加密?还是我应该将所有密码转换为散列密码以避免这种情况?或者还有其他选择吗?
好的。事实证明有一种兼容模式似乎可以工作并且允许我不更改加密。您所要做的就是将 compatibilityMode="Framework20SP2" 添加到 web.config 中的 machineKey,如下所示:
<machineKey compatibilityMode="Framework20SP2" validationKey="..."
decryptionKey="..." validation="3DES" />
希望这对遇到此问题的其他人有所帮助。