我有一个现有的数据库与accountnumber
。我想创建一个脚本,将该列作为输入,并为每个accountnumber
生成用户名/密码/配置文件条目。
配置文件条目将是原始帐号。
那么,例如,假设我使用accountnumber作为user/pass…
这是我逻辑上想要做的
insert into ASPNETDB Select accountnumber, accountnumber as UserName, accountnumber as Password, accountnumber as profileentry from table1
我知道创建1个用户需要使用一些存储过程,这就是为什么我不确定如何做到这一点。
我可以从asp.net c#的角度来回答这个问题。创建一个aspx页面,在代码隐藏中,使用循环读取每条记录(accountnumber),并使用成员类的CreateUser()
方法在循环中创建用户。
类似:
loop start{
// read account number from existing table
CreateUser(acccountnumber,password);
}
要了解如何使用CreateUser方法以编程方式创建用户,请检查this:
以编程方式创建用户
就是这样,我刚刚重读了MS文档,然后就开始了。这将设置一个用户帐户,并为每条记录生成一个键配置文件值。
declare @PPID NVARCHAR(20)
declare @salt NVARCHAR(500)
declare @stupid NVARCHAR(500)
declare @UserId uniqueidentifier
declare cur CURSOR LOCAL for
select PPID from webData..table where PPID is not null
open cur
fetch next from cur into @PPID
while @@FETCH_STATUS = 0 BEGIN
set @salt = @PPID + @PPID
set @stupid = 'TangiblePropertyId:S: 0:' + CONVERT(VARCHAR(10),LEN(@PPID))
--execute your sproc on each row
exec [aspnetdb].[dbo].[aspnet_Membership_CreateUser] '/',
@PPID
,@PPID
,@PPID
,@salt
,null
,null
,1
,'01/01/2011'
,DEFAULT
,DEFAULT
,DEFAULT
,@UserID
exec dbo.aspnet_UsersInRoles_AddUsersToRoles '/',@PPID,'TaxPayer','01/01/2011'
EXECUTE [aspnetdb].[dbo].[aspnet_Profile_SetProperties] '/' , @stupid ,@PPID ,'' ,@PPID ,false ,'01/01/2011'
PRINT @stupid
fetch next from cur into @PPID
END
close cur
deallocate cur