0

安全菜鸟在这里。

我正在尝试从 asp.net 会员转变为 Umbraco 会员。但是使用 passwordFormat="Encrypted" 似乎在 Umbraco 成员提供程序和 Microsoft 的 SQL 成员提供程序之间进行了不同的加密。

如果我向 SQL 成员资格提供程序注册了两个用户(使用 passwordFormat="Encrypted") - 编码的密码是不同的。如果我对 Umbraco 提供商做同样的事情,他们是一样的。

虽然所有字符串都解密为相同的东西(正确的密码) - 我显然不能使用 umbraco DB 中的 SQL 成员资格提供程序加密的密码(ValidateUser 失败)。

有人有想法么?

注意:我在两个站点上使用相同的 machineKey。

编辑:在 Umbraco 会员提供者上调用 EncryptPassword() 和 EncodePassword() 会给出不同的结果 - 而 EncodePassword 是正确的调用方法。但是 EncodePassword 在 .NET Membership 提供程序上不可用。这是我困惑的另一部分。

4

2 回答 2

1

密码可能不同,因为它们是加盐的。查看成员数据库中的 PasswordSalt 列,它应该是 Base64 字符串。

于 2013-02-12T18:21:47.130 回答
0

Umbraco 密码使用System.Security.Cryptography.HMACSHA1类进行哈希处理。我猜你可以用 HMACSHA1 对 SQL 会员用户密码进行哈希处理并称之为好。

有关详细信息,请参阅使用哈希密码添加用户。

于 2013-02-06T16:02:49.670 回答