Kręcę się w kółko i potrzebuję pomocy w implementacji Custom MembershipUser, aby móc dodać własne właściwości niestandardowe do MembershipUser.Wdrażanie Custom MembershipUser
śledzę przykład na tej stronie: How to: Implement a Custom Membership User
Problem mam jest w konstruktorze CustomMembershipUser, myślę.
Moje CustomMembershipUser ma te trzy dodatkowe właściwości: 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??
}
}
Wołam go tak:
MembershipUser mu = Membership.GetUser(UserName);
CustomMembershipProvider p = (CustomMembershipProvider)Membership.Provider;
MembershipUser memUser = p.GetUser(UserName, true);
object userId = memUser.ProviderUserKey;
ProviderUserKey jest nieważne i tak są inne wartości.
Jak mogę uzyskać dodatkowe właściwości, które dodałem?
Dzięki
Jimmy, Dziękuję! Twój przykład sprawił, że sprawy stały się jaśniejsze i teraz moja implementacja działa. Czy możesz opublikować kod dla konstruktora swojej CustomMembership? Dziękuję innym, którzy udzielili wskazówek dotyczących używania profili i dzielenia się swoimi doświadczeniami. – Picflight
Picflight, nie jestem pewien, co masz na myśli przez "konstruktora dla CustomMembership". Moja klasa CustomerMembershipProvider nie ma konstruktora. – jimmystormig
Chciałbym wskazać każdemu, kto znalazł to pytanie, mimo że jest to "akceptowana" odpowiedź, jest to * NIE * właściwy sposób wykonania tego zadania - wszelkie dodatkowe właściwości należące do użytkownika powinny być przechowywane w profilu, który pozwala osiągnąć to i wiele więcej przy znacznie mniejszym wysiłku i bez rozbijania modelu, tak jak pokazuje to tutaj kod. Zobacz moją odpowiedź poniżej, aby uzyskać więcej informacji. –