2

可以从 SQL Server Management Studio 创建简单会员用户帐户吗?

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

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

有什么方法可以生成可用于 t-SQL 的简单成员资格的散列密码?简单会员哈希密码的要求是否已知?我找到了使用 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)')

可用于简单会员资格。

4

1 回答 1

2

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

会员服务使用 .NET 的系统和加密库的配置来生成单向哈希 AFAIK,因此在 t-sql 中重做同样的事情并非易事。

于 2013-01-21T21:55:27.560 回答