分享

dnn3中批量导入(创建)用户 - 大厨师 - 博客园

 kommy 2007-09-15

dnn3中批量导入(创建)用户

from: http://www./Forums/ShowPost.aspx?tabindex=1&PostID=817449
The new tables involved are:
aspnet_applications
aspnet_users
aspnet_roles
aspnet_membership
aspnet_usersinroles

so, roughly to pre-enter a registered user (username test):
first we need the application ID, for most people there will probably be only one entry in here.
select * from aspnet_applications

now we need the application specific role id for Registered Users
SELECT * from aspnet_roles WHERE applicationid = ‘<<Application Id>>‘ and loweredrolename = ‘registered users‘

we now have enough info to add a user record
INSERT INTO aspnet_users (applicationid,username,loweredusername,isanonymous,lastactivitydate) VALUES (‘<<ApplicationId>>‘, ‘test‘, ‘test‘, 0, ‘ ‘)

now we can add a membership record
I have added a record with password of ‘password‘ so I can get the values for password and passwordsalt:

Password = ‘dJZb4pM3JlkCKO7HEWr6tAC4ulNlxsrWAVyfyjDJStFhW9izCuRWZQ==‘
PasswordSalt = ‘53jFOMm1UgCrjeLSeu19Xw==‘

INSERT INTO aspnet_membership (userid,password,passwordformat,passwordsalt,isapproved,islockedout,createdate,lastlogindate,lastpasswordchangeddate,lastlockoutdate,failedpasswordattemptcount,failedpasswordattemptwindowstart,failedpasswordanswerattemptcount,failedpasswordanswerattemptwindowstart) VALUES (‘<<UserId>>‘,‘<<Password>>‘, 2, ‘<<PasswordSalt>>‘, 1, 0, ‘ ‘, ‘ ‘, ‘ ‘, ‘ ‘, 0, ‘ ‘, 0, ‘ ‘)

link user with a role
INSERT INTO aspnet_usersinroles (userid,roleid) VALUES (‘<<UserId>>‘,‘<<RoleId>>‘)

This will be sufficient to allow login as test:password
posted on 2005-02-18 18:53 大厨师 阅读(462) 评论(0)  编辑  收藏
 
主题:DNN的注册用户如何完成注册和密码生成的?
作者 内容
anxianfei

DNN爱好者

头衔:DNN爱好者

积分:24

状态:用户不在线

加入:2007-5-15

IP:



6-20-2007 4:07 下午 举报 

   DNN的注册用户如何完成注册和密码生成的?

我现在需要把我们其他系统中的用户名和密码导入到DNN的数据表中

但是DNN的密码生成体系我不清楚,密码的保存也不知道是用的什么记录?

麻烦各位前辈给我指点一下方向!

我知道源码是VB.NET写的,但我只会C#.NET

caiwenjingzy

DNN爱好者

头衔:DNN爱好者

积分:22

状态:用户不在线

加入:2007-6-12

IP:



6-21-2007 1:21 下午 举报 
采用了Asp.Net的MemberShip完成的,密码是将注册时的密码加密后存储在dbo_aspnet_MemberShip表里面,如果你起他的系统存储的密码是明文,那么你可以将你的DNN的配置文件中有关MemberShip配置中passwordFormat="Encrypted",改为"Clear"就可以以明文存储在数据库中,但这样的安全性不高哦,要考虑好呀....
anxianfei

DNN爱好者

头衔:DNN爱好者

积分:24

状态:用户不在线

加入:2007-5-15

IP:



6-22-2007 1:38 下午 举报 
谢谢你的思路提示
我的其他的系统也不是用明文存储的,
aspnet_MemberShip表里存的用户的UserId
是怎么生成的?
caiwenjingzy

DNN爱好者

头衔:DNN爱好者

积分:22

状态:用户不在线

加入:2007-6-12

IP:



6-22-2007 1:56 下午 举报 
你可以看一下DNN中创建用户的存储过程,如果提供的参数有USERID将按照你提供的创建,如果USERID为NULL将为你自动生成一个ID
caiwenjingzy

DNN爱好者

头衔:DNN爱好者

积分:22

状态:用户不在线

加入:2007-6-12

IP:



6-22-2007 5:50 下午 举报 
具体过程是:第一步:根据注册信息,调用dbo.aspnet_Membership_CreateUser存储过程创建MemberShip所需要的用户在调用过程的时候如果指定的UserId为Null则自动生成一个GUID给用户.
第二步调用dbo.AddUser创建DNN的用户生成跟MemberShip表中相同的用户名,这里的UserId是从2开始自动++的,0和1分别被host和admin用掉.
第三步调用dbo.addUserRole来关联用户和角色.
注册完成..................
我今天研究这个机制然后,在我原来的系统用户表里做了个触发器有新用户加入的时候就自动调用以上三个过程,可以实现两个系统用户管理方面的同步了.但我原来系统是Windows应用程序做的即时通信软件,所以要做单点登录,没有Web程序那么方便还在研究中,有什么好办法大家提醒我哦,不胜感激!!!!!!!!!!!!!!!!
您没有权限发表回复.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多