实现自定义的MembershipUser [英] Implementing Custom MembershipUser

查看:201
本文介绍了实现自定义的MembershipUser的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我转圈圈,需要在实现自定义的MembershipUser一些帮助,这样我可以添加自己的自定义属性到的MembershipUser。

I am going round in circles and need some help in implementing a Custom MembershipUser so that I can add my own custom Properties to the MembershipUser.

我一直在关注本网站的例子:如何:实现自定义成员资格用户

I have been following the example on this site: How to: Implement a Custom Membership User

我遇到的问题是CustomMembershipUser的构造,我想。

我CustomMembershipUser有以下三个附加属性:名字,中间名,姓氏

My CustomMembershipUser has these three additional Properties: firstName, middleName, lastName.

public class CustomMembershipProvider : MembershipProvider
{
  public override MembershipUser GetUser(string username, bool userIsOnline)
    {
       //.... Get data from database
       MembershipUser baseUser = new MembershipUser(this.Name,
                                               username,
                                               userId,
                                               email,
                                               "",
                                               comment,
                                               isApproved,
                                               isLockedOut,
                                               dtCreate,
                                               dtLastLogin,
                                               dtLastActivity,
                                               DateTime.Now,
                                               dtLastLockoutDate);
                    return new CustomMembershipUser(baseUser, firstName, middleName, lastName)
    }
}


public class CustomMembershipUser : MembershipUser
{
  private string _firstName;
    public string FirstName { get { return _firstName; } set { _firstName = value; } }

    private string _middleName;
    public string MiddleName { get { return _middleName; } set { _middleName = value; } }

    private string _lastName;
    public string LastName { get { return _lastName; } set { _lastName = value; } }

 public CustomMembershipUser(MembershipUser baseuser, string firstname, string middlename, string lastname)
    {
        _firstName = firstname;
        _middleName = middlename;
        _lastName = lastname;

        new CustomMembershipUser(baseuser); // DO I NEED THIS?? HOW TO IMPLEMENT??

    }
}

我调用它像这样:

I am calling it like so:

    MembershipUser mu = Membership.GetUser(UserName);

    CustomMembershipProvider p = (CustomMembershipProvider)Membership.Provider;

    MembershipUser memUser = p.GetUser(UserName, true);

    object userId = memUser.ProviderUserKey;

该ProviderUserKey为空等等都是其他值。

The ProviderUserKey is null and so are the other values.

我怎样才能获得我加入了另外属性?

How can I obtain the addition Properties I added?

感谢

推荐答案

这是为我工作:

public class CustomMembershipUser : MembershipUser
{
    public CustomMembershipUser(
    	string providerName,
    	string name,
    	object providerUserKey,
    	string email,
    	string passwordQuestion,
    	string comment,
    	bool isApproved,
    	bool isLockedOut,
    	DateTime creationDate,
    	DateTime lastLoginDate,
    	DateTime lastActivityDate,
    	DateTime lastPasswordChangedDate,
    	DateTime lastLockoutDate
    	)
    	: base(providerName, name, providerUserKey, email, passwordQuestion,
    	comment, isApproved, isLockedOut, creationDate, lastLoginDate,
    	lastActivityDate, lastPasswordChangedDate, lastLockoutDate)
    {
    }

    // Add additional properties
    public string CustomerNumber { get; set; }

}

public class CustomMembershipProvider : MembershipProvider
{

	public override MembershipUser GetUser(string username, bool userIsOnline)
	{
		if (string.IsNullOrEmpty(username))
		{
			// No user signed in
			return null;
		}

		// ...get data from db

		CustomMembershipUser user = new CustomMembershipUser(
					"CustomMembershipProvider",
					db.Username,
					db.UserId,
					db.Email,
					"",
					"",
					true,
					false,
					db.CreatedAt,
					DateTime.MinValue,
					DateTime.MinValue,
					DateTime.MinValue,
					DateTime.MinValue);

		// Fill additional properties
		user.CustomerNumber = db.CustomerNumber;

		return user;

	}

}

// Get custom user (if allready logged in)
CustomMembershipUser user = Membership.GetUser(true) as CustomMembershipUser;

// Access custom property
user.CustomerNumber

这篇关于实现自定义的MembershipUser的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆