begin process at 2012 05 28 15:33:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Web 2.0

 > 

Comment ajouter des "property" à un "profile" d'utilisateur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment ajouter des "property" à un "profile" d'utilisateur

mercredi 10 janvier 2007 à 08:40:25 | Comment ajouter des "property" à un "profile" d'utilisateur

SuperBouly

Membre Club

Bonjour,
Je travaille sur VS 2005 en VB, et j'utilise la sécurité du framawork 2.0.
J'ai besoin qu'un utilisateur-adhérent soit repéré par d'autres paramètres que ceux de la table aspnet_MemberShip,
dans mon exemple, le "code postal" et "la ville".
 J'ai donc rajouté au Web.config :
<profiledefaultProvider="SqlProvider">
      
<providers>
      <clear />
      <addname="SqlProvider"
         type="System.Web.Profile.SqlProfileProvider"
         connectionStringName="LocalSqlServer"
         applicationName="SampleApplication"
         description="SqlProfileProvider for SampleApplication" />
   </providers>

   <properties>
      <addname="CP" />
      <addname="Ville" />
   </properties>
</profile>
Ensuite, il est très facile d'alimenter la table "aspnet_Profile" de la base de sécurité ASPNETDB.MDF par la simple ligne : 
            Profile.Ville = "Amiens"
et de récupèrer cette valeur ensuite par 
      MonLabel.Text = Profile.Ville

Mais L'application impute alors cette propriété à l'UTILISATEUR CONNECTE !
Comment l'administrateur peut-il imputer cette propriété à un utilisateur quelconque ?

La classe "Profile" ne convient peut-être pas, d'ailleurs, la doc dit :
La fonctionnalité de profil ASP.NET associe des informations à un utilisateur donné et les stocke sous un format persistant.
Mais aussi :
ASP.NET fait automatiquement correspondre l'utilisateur actuel, qu'il soit anonyme ou connecté, aux informations personnelles qui sont stockées dans leur compte d'utilisateur.
Alors, comment faire, quelle classe utiliser ? Faut-il communiquer avec cette base de façon classique (requête,commande etc) ? Quelqu'un a-il une lumière à apporter ?
merci
Gilles
mercredi 10 janvier 2007 à 11:28:13 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

il me semble que le ProfileProvider par défaut est le sqlprofileprovider tu ne dois pas avoir à le spécifier dans ton web.config, mais je peux me tromper :)

en ce qui concerne les utilisateurs anonymes il faut jouer avec la propriété allowanonymous dans les properties de ton profile. En tout cas un truc avec anonymous pas loin du <profile> rien dans le code .net :-)


Cyril - MVS - MCP
mercredi 10 janvier 2007 à 13:12:06 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

SuperBouly

Membre Club

merci pour ta réponse.
Cependant je n'ai pas employé les mots exacts :
j'ai parlé de l'utilisateur connecté, je voulais dire l'utilisateur tout court, celui qui utilise la page; anonyme ou pas.
Je voudrais que l'administrateur puisse entrer les renseignements (code postal et ville par ex.) pour un adhérent.
Or si l'administrateur est connecté pour gérer ses abonnés, le code Profile.CP="14200" lui impute CP=14200 à lui-même ! Je voudrais l'imputer à un adhérent de mon choix, choisi dans le role "Adhérents" par exemple.
Pour ce qui est du ProfileProvider, je continue à chercher dans ta direction.
merci
@+Gilles

mercredi 10 janvier 2007 à 14:00:29 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

jesusonline

Membre Club Administrateur CodeS-SourceS
Ahh d'accord, j'avais pas compris

Tu dois pouvoir avoir ton bonheur avec les méthodes static de System.Web.Profile.ProfileManager tu dois avoir un findMember ou un truc du genre et ensuite modifier tout ca :-)



Cyril - MVS - MCP
jeudi 11 janvier 2007 à 09:27:43 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

SuperBouly

Membre Club
Merci pour la pisteProfileManager.
Bon, en suivant la piste ProfileManager, j''ai trouvé la syntaxe, pour les internautes que ça intéresse, je la mentionne en fin de message.
Cependant  le mécanisme me paraît bizarre :
J'ajoute un adhérent (UserName ="monAdherent") dans la table aspnet_user à l'aide d'un contrôle CreateUserWizard que je bricole en rajoutant 2 textbox tbCP et tbVille destinées à recevoir le Code Postal et la ville.
Tout marche bien, mais 2 lignes apparaissent dans la table aspnet_user, portant des UserId différents pour mon seul UserName
Est-ce mon code qui provoque ça, ou est-ce normal !! J'aime autant dire que ça cree des problèmes d'affichage de requêtes dans les gridview!
Voici le code :
Protected Sub CreateUserWizard1_CreatedUser(ByVal sender As Object, ByVal e As System.EventArgs) Handles CreateUserWizard1.CreatedUser
        'enregistrement du nouveau client
        Dim sUser() As String = {CType(sender, CreateUserWizard).UserName}
        Dim Rol As String = "Clients"     'un role "clients" a été défini par ailleurs
        Roles.AddUsersToRole(sUser, Rol)
        'adjonction des paramètres supplémentaires : Ville et CP
        '1.lecture
        Dim tbVille As TextBox = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("tbVille")
        Dim Ville As String = tbVille.Text
        Dim tbCP As TextBox = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("tbCP") 
        Dim CP As String = tbCP.Text
        '2. définition du profil-utilisateur
'(EST-CE CECI QUI EST INCORRECT ?) 
        Dim MonUser As String = sUser(0) 
        Dim provi As ProfileProvider = ProfileManager.Provider 
        Dim prof As New ProfileBase
        prof = ProfileBase.Create(MonUser)
        '3 ecriture des valeurs dans ce profile 
        Dim NouvPValues As New SettingsPropertyValueCollection 
        Dim pvalues As SettingsPropertyValueCollection = provi.GetPropertyValues(prof.Context, ProfileBase.Properties)
 
        For Each pval As SettingsPropertyValue In pvalues 
            Dim NouvValue As New SettingsPropertyValue(pval.Property)
            If pval.Name = "CP" Then
                NouvValue.PropertyValue = CP
            ElseIf pval.Name = "Ville" Then
                NouvValue.PropertyValue = Ville
            End If
            NouvPValues.Add(NouvValue)
        Next
        provi.SetPropertyValues(prof.Context, NouvPValues)
 
'OUF ceci, pour tout dire, me paraît laborieux et ne me paraît pas être une simplification de la vie, je dois trouver mieux !
@+Gilles
jeudi 11 janvier 2007 à 10:18:34 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

tu es dans l'évenement creatEDUser ... ton user est donc déjà créer, donc la ligne ProfileBase.Create("") est inutile ! Tu dois récuperer une instance de l'user en cours, peut etre qu'il est dans l'argument e ou dans le createuserwizard ou alors il faut peut etre utiliser une méthode findUserByName du profileProvider.




Cyril - MVS - MCP
jeudi 11 janvier 2007 à 14:59:24 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

SuperBouly

Membre Club

ok, je me doutais...au flair
Mais la bonne commande *GetProfileByUserName n'est pas membre de profileBase mais de ProfileManager et je m'emmêle les crayons dans toutes ces classes, je dois repartir sur des bases + saines!
Je viens de voir que c'est très bien traité dans le gros et très bon bouquin (que je conseille même -surtout- aux débutants) de G.NICOT. Donc je me replonge.
Si je trouve le temps, je ferai une source, car ce serait un peu long ici.
@+Gilles

jeudi 11 janvier 2007 à 15:05:07 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

jesusonline

Membre Club Administrateur CodeS-SourceS
tu peux me donner la référence de ce bouquin ? (un lien vers amazon en gros :p) car je pense que ca interesse d'autres personnes :-)


Cyril - MVS - MCP
jeudi 11 janvier 2007 à 17:17:33 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

SuperBouly

Membre Club

Aie, aie aie... je viens de m'apercevoir que l'exemple traité ne traite que de la classe "Profile" et que donc chaque utilisateur met a jour ses propres paramètres (facile !!).
 Je suis donc au point mort pour l'instant.
Je donne quand même le lien Amazon de ce très bon livre, écrit en (bon) français et pas très cher.
[ Lien ]
@+Gilles

jeudi 11 janvier 2007 à 17:49:14 | Re : Comment ajouter des "property" à un "profile" d'utilisateur

jesusonline

Membre Club Administrateur CodeS-SourceS
Je viens de regarder dans Visual Studio (juste l'intelisense j'ai pas le temps de faire un test complet :s)

mais j'ai l'impression de m'etre gourré tout à l'heure, le ProfileBase.Create("toto"); ne créer pas un nouveau profile mais une nouvelle instance du profile pour l'utilisateur spécifié, d'après ce que j'ai compris cela permet de charger le profile spécifié à partir des infos de la base de données.

En ce qui concerne le code plus haut tu as du oublier le save et fais des trucs en trop. En gros je pense que :

ProfileBase profile = ProfileBase.Create("toto");
profile.properties["CP"] = 45655:
profile.Save();

ca devrait largement suffire :)

Pour le bouquin je connais pas, et il me semble pas avoir encore vu un bon bouquin sur ASP.net 2.0 en francais ... moi j'ai lu les bouquins de Dino Esposito sur ASP.net 2.0 et ils sont vraiment très bien. Et il parle longuement des différents provider :-)

>> [ Lien ]
>> [ Lien ]

Cyril - MVS - MCP

1 2

Cette discussion est classée dans : utilisateur, ajouter, profile, ville, addname


Répondre à ce message

Sujets en rapport avec ce message

Profile mais pas dans l'utilisateur courant [ par gstrit ] Bonjour,J'utilise le createuserwizard pour créer mes utilisateurs. J'ai ajouté des champs nom et prénom. Le probleme est que quand les valeurs de ces authentification [ par koukitasaid ] Bonjour, J'ai un formulaire de saisie que l'utilisateur doit remplir ,ces informations seront Ajouter sur les tables selon les champs de chacune, apre recherche parametrer [ par asmaa17 ] Salut,je suis entraint de realiser un site intranet ,je veux  donne l'autorisation un un administrateur(identifier par mot de passe et nom utilisateur Profile Vs Aspnet_membership (Débutant) [ par Nightcourrier ] Salut,         J'utilise la base de données ASPNETDB pour la création des usagers sont mon sites.        J'aimerais savoir  quelle est la différence e Cas précis pour l'utilisation des sessions [ par Max207 ] Bonjour à tous,Je dois développer une application d'après une analyse technique précise. En gros je dois faire une double authentification d'abord par Requete [ par mimosa803 ] Bonjour, j'ai trouvé un problème à exécuté ma requête malgrès qu'elle marche sur Sql Server :Voila la reqûete Sql :select  distinct([name]),(select re Gridview et RowUpdating [ par mimosa803 ] Bonjour j'ai un problème avec l'evénement  RowUpdating. En effet,  lorsque je clique sur  Update aucun code ne s'éxécute même un Response.Write(""): v Ajouter une méthode dans un provider [ par Jean_Marc_1968 ] Salut à toutes et à tous,Ne travaillant pas avec SqlServer, j'ai créé mes poviders perso qui fonctionnent.Là où je coince c'est que, par exemple j'ai  Custom Profile et Membership [ par riric94 ] Bonjour,Je suis en train de créer un site internet et je souhaite utiliser l'authentification fournit par .Net grace aux profiles et membership.Voici Custom Profile et Membership [ par riric94 ] Bonjour,Tout d'abord désolé, il y a le meme message dans la


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,112 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales