在 SQL 中创建 asp.net 身份用户

Swi*_*fty 5 sql asp.net-identity

这个问题是上一个问题的修改版(我删除了那个问题)

我有一个正在运行的网站,(C#) MVC 5并且ASP.Net Identity 2.0. 在站点内,所有用户管理功能都可以正常工作,创建、更新、删除。

我们有一个 SQL 作业,可以在网站的先前版本上批量创建所有帐户,我现在需要更新它以在Identity 2.0. 我在任何可用的论坛中都找不到有关如何执行此操作的任何信息。

任何信息,将不胜感激。

我已经做了一些工作,我遇到的最后一个问题是弄清楚如何对Identity 2.0密码进行编码。我似乎无法找出使用什么算法。

这是身份 1 对密码进行编码的方式:

SET @encoded_hashed_password = dbo.fbase64_encode(HASHBYTES('SHA1', Cast(@salt as varbinary(MAX)) + CAST(@ClearTextPassword AS varbinary(MAX))))
Run Code Online (Sandbox Code Playgroud)

我正在寻找 Identity 2.0 的等效项。

Kev*_*ans 1

它使用与System.Web.Helpers.Crypto中相同的算法来散列和验证密码。要对密码进行哈希处理,可以使用HashPassword方法。密码哈希是使用 RFC 2898 算法使用 128 位盐、256 位子密钥和 1000 次迭代生成的。生成的哈希字节流的格式为{0x00, salt, subkey},在返回之前经过base-64编码。

从问题中我不清楚以前的网站是否使用了 SimpleMembership。如果是的话,这里有一篇文章提供了迁移到 ASP.NET Identity 的详细步骤以及如何对密码使用相同的哈希值。

  • T-SQL 没有内置任何东西来执行这种类型的哈希。但您可以从中调用 .Net 方法。你可以使用我上面提到的方法(Crypto.HashPassword)。下面是有关如何调用简单的基于公共语言运行时 (CLR) 集成的存储过程的示例。http://msdn.microsoft.com/en-us/library/ff878250.aspx (3认同)