自由、创新、研究、探索……

Linux/Windows Mono/DotNet [ Open Source .NET Development/ 使用开源工具进行DotNet软件开发]
posts - 516, comments - 1986, trackbacks - 143, articles - 55
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

在我们的应用系统中,asp.net 2.0的用户表中的数据往往不能满足我们的需求,还需要增加更多的数据,一种可能的解决方案是使用Profile,更普遍的方案可能是CreateUserwizard中添加数据到我们自己的表中。

在结合asp.net 2.0的用户管理系统设计的保存用户额外信息的表中的主键是用户表ID的外键,你可以获取ID从Membershipuser属性Provideruserkey. 使用Createuserwizard的Oncreateduser事件. 在这个事件中可以通过Membership类的GetUser方法获取当前创建成功的用户MembershipUser 。

 MembershipUser   user  = Membership.getuser=(MyCreateUserWizar.UserName) ;

使用Createuserwizard的UserName属性可以获得注册的用户名. 当你建立用户membershipuser对象,可以使用Provideruserkey获取用户的主键值(一个GUID值):

CreateUserWinard的OnCreatedUser事件中可以获取你要添加的额外用户信息和Provideruserkey的值插入到你自己的数据库表中。下面是一个如何使用的例子:

protected void CreateUserWizard1_CreatedUser( object sender, System.EventArgs e)
{

        MembershipUser user = Membership.GetUser(CreateUserWizard1.UserName);

        if (user != null)
            Throw New ApplicationException("找不到用户.");

        Guid userId = (Guid)user.ProviderUserKey;

       // 获取CreateUserWizard控件中的额外的用户注册信息

        TextBox myData = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("TextBox1") as TextBox;

        UserInfo userinfo = new UserInfo();

        userinfo.ID = userId;

        userinfo.QQ = myData.Text;

        ……

        this.AddMyDataToMyDataSource(userinfo);
}

private void AddMyDataToMyDataSource(UserInfo myData)
{
   //添加数据到自己的数据库表中
}

园子中的Membership的相关文章:

ASP.NET 2.0 Membership

asp.net 2.0 用户管理功能结构

关于Membership的设置

(翻译)怎么在ASP.NET 2.0中使用Membership

Membership学习(四)-自定义MembershipProvider[xgluxv]

Membership学习(三)Membership Providers介绍[xgluxv]

Membership学习(二)membership入门[xgluxv]

Membership学习(一) Membership介绍[xgluxv]

membership,想说爱你不容易

自由、创新、研究、探索……
Url: http://shanyou.cnblogs.com
website: http://www.openbeta.cn

Feedback

#1楼    回复  引用  查看    

2006-09-11 00:23 by aspnetx      
还有一篇埋怨Membership的,呵呵,我写过的
来凑个数

#2楼    回复  引用  查看    

2007-02-02 18:09 by 沧桑雨迢迢      
基本上,微软提供的成员角色系统仅供参考,或者,你开发自定义的Provider来应用微软提供的“皮”。而且,我认为profile的改变不应该应用在一些基本的用户数据资料补充上,那是设计事务!

#3楼    回复  引用  查看    

2007-05-24 16:16 by 永远小太阳      
原文
------------------------
if (user != null)
Throw New ApplicationException("找不到用户.");
------------------------
应该改为
if (user == null)
throw new ApplicationException("找不到用户.");
哈哈