Toujours Membership

SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010 - 23 oct. 2006 à 14:18
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010 - 24 oct. 2006 à 13:37
Bonjour,
Suite de la question, Peut-on ajouter des propriétés à une classe déjà implémentée dans le Framework 2? Donc pas de classes partielles.


Je voudrais que les utilisateurs, membres des rôles, soient identifiés par d'autres paramètres, comme un entier "Niveau" par exemple.



<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??>
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">
<v:stroke joinstyle="miter">
</v:stroke>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
</v:f>
<v:f eqn="sum @0 1 0">
</v:f>
<v:f eqn="sum 0 0 @1">
</v:f>
<v:f eqn="prod @2 1 2">
</v:f>
<v:f eqn="prod @3 21600 pixelWidth">
</v:f>
<v:f eqn="prod @3 21600 pixelHeight">
</v:f>
<v:f eqn="sum @0 0 1">
</v:f>
<v:f eqn="prod @6 1 2">
</v:f>
<v:f eqn="prod @7 21600 pixelWidth">
</v:f>
<v:f eqn="sum @8 21600 0">
</v:f>
<v:f eqn="prod @7 21600 pixelHeight">
</v:f>
<v:f eqn="sum @10 21600 0">
</v:f>
</v:formulas>
<v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f">
</v:path>
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
<o:lock aspectratio="t" v:ext="edit">
</o:lock>
</v:shapetype>
<v:shape id="_x0000_s1026" style="MARGIN-TOP: 196.85pt; Z-INDEX: 1; MARGIN-LEFT: -18pt; WIDTH: 180.75pt; POSITION: absolute; HEIGHT: 294.75pt; mso-position-vertical-relative: page" type="#_x0000_t75">
<v:imagedata o:title="table" src="file:///G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg">
</v:imagedata>
<?xml:namespace prefix w ns "urn:schemas-microsoft-com:office:word" /??>
<w:wrap type="square" anchory="page">
</w:wrap>
</v:shape>


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

?
Merci
Gilles

5 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
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 :-)

<hr />Cyril - MVS - MCP
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
23 oct. 2006 à 18:56
C'est pas gagné!
merci pour ton aide
@+Gilles
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
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 !

Quelques liens (il y a malheureusement peu de doc sur le sujet ... vais devoir y remédier :p) :
Profiles avec ASP.NET : http://msdn2.microsoft.com/fr-fr/library/at64shx3.aspx
MemberShipProviders : http://ditch.developpez.com/aspnet2/membershipprovider/ (surtout sur les MemberShip, mais il y a une petite partie sur les Profiles)
Elément profiles du web.config : http://msdn2.microsoft.com/fr-fr/library/ms164644.aspx

A++

<hr width="100%" size="2" />Nurgle(Antoine)
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
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 ! )

<hr width="100%" size="2" />Nurgle(Antoine)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
24 oct. 2006 à 13:37
merci pour ces pistes, j'ai du boulot !
@+Gilles
0
Rejoignez-nous