Implementing Custom MembershipUser

前端 未结 3 1839
清歌不尽
清歌不尽 2020-12-13 22:38

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 f

3条回答
  •  生来不讨喜
    2020-12-13 22:43

    This is working for me:

    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
    

提交回复
热议问题