J'ai ajouté dans la table aspnet_Membership de la base "ASPNETDB.MDF" de la sécurité, un champ Niveau (int)
J'ai pu le renseigner directement dans la base, et donc le consulter par la suite.
Par programme , je peux consulter certains champs de la base à l'aide de :
Dim membr As System.Web.Security.MembershipUser
membr = Membership.GetUser("monMembre")
lbProp.Text = membr.Email
lbProp.Text = membr.ProviderUserKey 'par exemple
Mais membr.Niveau n'est pas consultable, encore mons assignable ! La propriété n'est pas implémentée, mais la colonne existe !
Ce serait bien pratique car mes utilisateurs ont besoin d'autres paramètres que ceux de la sécurité. Sinon, je dois faire comme avant, avec une base de données perso etc...
Comment accèder à ce champ par programme
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 23 oct. 2006 à 15:13
Bonjour,
Regarde au niveau des profiles et de la customisation des du membershipProvider. C'est une trés mauvaise idée de modifier la base aspnetdb, ca cause plus de soucis que cela en résoud.
Donc je vois 2 solutions : soit tu créer un nouveau membershipprovider (par héritage) soit tu te sert des profils asp.net 2.0
PS : évite de créer plusieurs thread sur le forum pour une meme question :-)
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 23 oct. 2006 à 19:39
Salut,
Il faut distinguer les deux méthodes proposées par cyril :
- Si tu désires utiliser une méthode de stockage personnalisée des utilisateurs (autre que dans une base SQL, ou que via ActiveDirectory), là tu devras plutôt créer ton propre MemberShipProvider.
- Si, comme c'est le cas pour toi, tu veux juste stocker des données sur tes utilisateurs, que ne te permet pas de stocker le MemberShipProvider, c'est les Profiles que te dois utiliser !
Dans ce dernier cas, tu as deux choix :
1. Utiliser le ProfileProvider par défaut, qui est d'ailleurs le seul disponible : le SqlProfileProvider. (c'est le plus simple)
2. Créer ton propre ProfileProvider (hérité de System.Web.Profile.ProfileProvider), si tu cherches à stocker ces données autre part que dans une base sql.
Dans tous les cas, modifier la base "aspnetdb.mdf" est une très très très mauvaise idée !
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 23 oct. 2006 à 19:43
arf, quand je dis "peu de doc sur le sujet", je veux dire "peu de tutoriaux qui explique ce point précis"...
Je voudrais pas blasphémer contre la MSDN2 . (qui est très bien d'ailleurs, hein ! )