Implémentation de MembershipUser personnalisé
Je vais en rond et ont besoin de l'aide dans la mise en œuvre d'une Coutume MembershipUser de sorte que je peux ajouter mes propres Propriétés personnalisées à la MembershipUser.
J'ai suivi l'exemple sur ce site: Comment: mettre en Œuvre une Coutume de l'Adhésion de l'Utilisateur
Le problème que j'ai est dans le constructeur de CustomMembershipUser, je pense.
Mon CustomMembershipUser a ces trois Propriétés supplémentaires: 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??
}
}
Je l'appelle comme ça:
MembershipUser mu = Membership.GetUser(UserName);
CustomMembershipProvider p = (CustomMembershipProvider)Membership.Provider;
MembershipUser memUser = p.GetUser(UserName, true);
object userId = memUser.ProviderUserKey;
La ProviderUserKey est nulle et que les autres valeurs.
Comment puis-je obtenir le plus de Propriétés, j'ai ajouté?
Grâce
source d'informationauteur Picflight
Vous devez vous connecter pour publier un commentaire.
C'est de travailler pour moi:
Basé sur ma propre expérience, en essayant de faire beaucoup de le même, essayez d'utiliser le MembershipProvider à faire, ce sera finalement une source de frustration et de contre-intuitif de l'expérience.
L'idée de l'appartenance modèle de fournisseur n'est pas de modifier ou de compléter ce que la définition d'un utilisateur est, comme vous essayez de le faire - c'est pour autoriser le Cadre d'un autre moyen d'accéder à l'information qui a déjà été définie comme appartenant à un "MembershipUser".
Je pense que vous êtes vraiment à la recherche d'un profil d'utilisateur. À l'aide de ASP.NET des profils est d'y chercher plus facile que la mise en œuvre de votre propre fournisseur. Vous pouvez trouver la présentation ici.
Si vous le savez, j'ai essayé d'aller en bas de la MembershipProvider chemin avant, et c'est un long et venteux. Vous pouvez voir si juste de la création de classes qui implémentent IPrincipal et l'Identité de satisfaire vos besoins, car elles impliquent beaucoup moins de frais généraux.