如何在 ASP.NET 5 Identity 中设置 PasswordHasherCompatibilityMode.IdentityV3?

How to set PasswordHasherCompatibilityMode.IdentityV3 in ASP.NET 5 Identity?

目前似乎默认设置为 PasswordHasherCompatibilityMode.IdentityV2,即 ASP.NET 中的 HMAC-SHA1 5. 我尝试创建 PasswordHasherOptions 的实例以添加到服务 (DI) 但无法正常工作。

V3 使用 PBKDF2 和 HMAC-SHA256,128 位盐,256 位子密钥,10000 次迭代。

我希望这会像将来的一些配置设置一样简单,而不是必须实现自定义实现,因为所有代码都已经存在。

更新:

services.Configure<PasswordHasherOptions>(options => options.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV3);

默认不应该是 V2,默认是较新的格式,如您在 https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/PasswordHasherOptions.cs

中所见
    /// <remarks>
    /// The default compatibility mode is 'ASP.NET Identity version 3'.
    /// </remarks>
    public PasswordHasherCompatibilityMode CompatibilityMode { get; set; } = 
           PasswordHasherCompatibilityMode.IdentityV3;

如果散列密码的第一个字节是 0x01,那么它是版本 3 散列。

如果您看到 0x00,则说明它是在您的代码中的其他地方配置的,或者存在错误,在这种情况下,请在 GitHub 上登录。