asp.net - 使用 T-SQL 创建 SimpleMember 用户帐户 - 密码如何散列?

标签 asp.net sql-server t-sql simplemembership

可以从 SQL Server Management Studio 创建简单成员(member)用户帐户吗?

我发现的创建用户/帐户的唯一方法是在运行应用程序时使用 C#:

WebSecurity.CreateUserAndAccount("userName", "password",
                        new
                        {
                            ...
                        }, false);

是否有任何方法可以生成可在简单成员(member)资格中使用 t-SQL 的哈希密码?简单成员(member)散列密码的要求是否已知?我找到了使用 DefaultMembershipProvider 生成密码的其他方法,但密码与 Simple Membership 不兼容。

编辑: 我希望找到类似的过程:

declare @salt nvarchar(128)
declare @password varbinary(256)
declare @input varbinary(512)
declare @hash varchar(64)

-- Change these values (@salt should be Base64 encoded)
set @salt = N'eyhKDP858wdrYHbBmFoQ6DXzFE1FB+RDP4ULrpoZXt6f'
set @password = convert(varbinary(256),N'mypassword')

set @input = hashbytes('sha1',cast('' as  xml).value('xs:base64Binary(sql:variable(''@salt''))','varbinary(256)') + @password)
set @hash = cast('' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable(''@input'')))','varchar(64)')

可用于简单成员(member)资格。

最佳答案

我认为最简单的方法是创建然后导入一个简单的.NET 程序集并在 Sql Server 中使用它。
http://msdn.microsoft.com/en-us/library/ms189876.aspx

成员(member)服务使用 .NET 的系统配置和加密库来生成单向哈希值(AFAIK),因此在 t-sql 中重做相同的事情并不是一件容易的事。

关于asp.net - 使用 T-SQL 创建 SimpleMember 用户帐户 - 密码如何散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14447843/

相关文章:

c# - 发布Web API时Dotnet发布不会创建文件夹

sql-server - SQL Server 中值的自动更新

c# - ExecuteNonQuery 在 .NET 4.6.1 中永远挂起

sql-server - 有没有办法转换客户 ID 及其最近的订单日期?

sql - 合并连续的日期

sql - 子查询内的 SELECT INTO

c# - SEO:自定义站点地图提供程序与静态 web.sitemap 文件

c# - 从数据库记录创建路由

c# - 如何在 ASP.NET 上进行身份验证

sql - 我该怎么做 Pivot(转置)