IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C# 2.0][Débutant] CreateUserWizard


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut [C# 2.0][Débutant] CreateUserWizard
    Bonjour,

    Voila j'utilise le control CreateUserWizard avec VS2005.
    J'aimerai rajouter des champs dans l'enregistrement du control (nom, prénom).
    J'ai suivi l'article ci-dessous;
    http://ditch.developpez.com/aspnet2/membershipprovider/
    mais je ne suis pas sur que ça réponde parfaitement à mon besoin.

    Actuellement j'ai juste posé le contrôle, créer la base sous SQL SERVER 2005 et configurer mon web.config.
    Y a t'il un moyen simple et rapide pour rajouter ces deux champs?
    La procédure stockée est déjà modifiée ainsi que le formulaire.

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    Personne n'a jamais rajouté de champs dans le CreateUserWisard?
    Est-ce que c'est possible au moin?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 114
    Par défaut
    Ca a pas l'air, mais j'aimerai bien savoir aussi

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    Bon je vais faire encore plus simple.
    J'ai créer une classe qui hérite de MembershipProvider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserMemberShip:MembershipProvider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
        {
            Guid guid = new Guid();
     
            SqlConnection cnx = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SCNX"].ToString());
            SqlCommand myCommande = new SqlCommand("[IntranetHeig].[dbo].[aspnet_Users_CreateUser]", cnx);
            myCommande.CommandType = CommandType.StoredProcedure;
            myCommande.Parameters.Add("@ApplicationId", SqlDbType.UniqueIdentifier).Value = ApplicationId;
            myCommande.Parameters.Add("@UserName", SqlDbType.VarChar).Value = username;
            myCommande.Parameters.Add("@IsUserAnonymous", SqlDbType.Bit).Value = 0;
            myCommande.Parameters.Add("@LastActivityDate", SqlDbType.DateTime).Value = System.DateTime.Now;
            myCommande.Parameters.Add("@UserId", SqlDbType.UniqueIdentifier).Value = guid;
            myCommande.Parameters.Add("@UserLastName", SqlDbType.VarChar).Value = UserLastName;
            myCommande.Parameters.Add("@UserLogin", SqlDbType.VarChar).Value = UserLogin;
            myCommande.Parameters.Add("@IsActived", SqlDbType.Bit).Value = 0;
            myCommande.Parameters.Add("@IsActif", SqlDbType.Bit).Value = 0;
            cnx.Open();
            int result = myCommande.ExecuteNonQuery();
            cnx.Close();
            if (result == 0)
            {
                return guid.ToString();
            }
            else
            {
                return result.ToString();
            }
         }

    Vu que dans le contrôle CreateUserWisard j'ai rajouté deux champs (nom et prénom) j'aimerai pouvoir faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public override MembershipUser CreateUser(string prenom,string nom, string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)

    If you please comment rajouter ces deux champs?

    Merci d'avance

  5. #5
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    Bonsoir,

    Peux-tu utiliser l'api Profile ?

    Tu pourrais saisir les informations suplémentaires lié à ton user dans une interface dédiée ?

    Stéphane

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    Enfaite j'ai trouvé un lien interressant:

    http://msdn2.microsoft.com/fr-fr/lib...er(VS.80).aspx

    Ca a l'air de bien fonctionner.
    Pour ceux qu'on la flemme de cliquer j'explique en deux mots:

    L'exemple de code suivant utilise l'événement CreatedUser pour stocker le prénom et le nom de l'utilisateur dans les propriétés de personnalisation. L'exemple de code requiert les entrées suivantes dans le fichier Web.config.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration> 
    <system.web> 
    <profile> 
    <properties> 
    <add name="lastName" /> 
    <add name="firstName" /> 
    </properties> 
    </profile> 
    </system.web> 
    </configuration>
    Ensuite on rajoute une étape dans le contrôle.
    Donc c'est mortel ca plante pas, je dirais même que ça à l'air de fonctionner mais .... je ne sais pas comment récupérer ces profiles personnalisés.

    Une info?

    Meci d'avance.

  7. #7
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    Oui, il s'agit de l'api Profile..

    directement dans ton code :

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    Ha style merci.

    j'ai essayé de rajouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Web.Profile;
    mais quand je marque Profile dans le code je l'ai pas tout seul dans la complétion, c'est toujours ProfileQuelqueChose.
    C'est dans ProfileInfo?

    Il trouve pas le profile.lastname

  9. #9
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    désolé de te répondre par un lien... je n'ai pas le temps de rentrer dans les détails mais je suis sur que tu vas trouver la bonne démarche avec ce tutoriel ...

    ASP.NET QuickStart : Storing User Profiles

    j'espère que ça t'aidera..

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    Merci beaucoup stephane.net
    Je ne cherchais pas que la solution je veux comprendre, je me suis pris la tête avec ce truc.

    Merci encore.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    Bonjour c'est encore moi
    Alors j'ai bien avancé mais il y a toujours des points noir.

    Voilà ou j'en suis.

    Mon web.config:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    		<membership defaultProvider="TestCreateUserMembershipSqlProvider" userIsOnlineTimeWindow="15">
    			<providers>
    				<add name="TestCreateUserMembershipSqlProvider" 
    					type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    					connectionStringName="ASPNETDB" 
    					enablePasswordRetrieval="false" 
    					enablePasswordReset="true" 
    					requiresQuestionAndAnswer="false" 
    					applicationName="TestCreateUser" 
    					minRequiredPasswordLength="4" 
    					minRequiredNonalphanumericCharacters="0"
    					requiresUniqueEmail="false" 
    					passwordFormat="Hashed"/>
    			</providers>
    		</membership>

    et ma zone profile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <profile enabled="true">
     
     
     
    			<properties>
     
    				<add name="lastName" />
     
    				<add name="firstName" />
     
    			</properties>
     
    		</profile>
    Ensuite j'ai ma page bidon: default.aspx qui contient mon évènement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script runat="server">
    void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
    {
        Profile.SetPropertyValue("UserName", firstName.Text + "." + lastName.Text);  
    }
    </script>
    et mon contrôle que j'ai réduis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <asp:createuserwizard id="CreateUserWizard1" runat="server">
              <wizardsteps>
                <asp:wizardstep ID="Wizardstep1" runat="server" steptype="Start" title="Identification">
                  Tell us your name:<br />
                  <table width="100%">
                    <tr>
                      <td>
                        First name:</td>
                      <td>
                        <asp:textbox id="firstName" runat="server" /></td>
                    </tr>
                    <tr>
                      <td>
                        Last name:</td>
                      <td>
                        <asp:textbox id="lastName" runat="server" /></td>
                    </tr>
                  </table>
                </asp:wizardstep>

    Donc voilà tout ce passe bien mon User est bien enregistré en base.
    Mais je ne comprend pas comment il fait avec les deux <properties>

    1/Si j'ai bien compris l'exemple ils sont concaténés et enregistrer dans le champs userName non?
    2/Admettons que je fasse Response.write(Profile.lastname) c'est égale à "". c'est normal?
    3/Je n'ai pas trop saisie ou sont stockée les nouvelles propriétés. Ca a un rapport avec les tables PersonnalizationperUser et alluser?

    Merci d'avance.

  12. #12
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut


    D'abord tu créée ton compte avec le UserName que tu veux et ensuite du set ses prorpriétés. c'est 'encore plus simple que ça...

    un petit exemple just pour montrer le principe...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            Membership.CreateUser("smoke.eulote","toto");
            ProfileCommon pf = Profile.GetProfile("smoke.eulote");
            pf.LastName = "Eulote";
            pf.FirstName = "SmoKE";

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    C'est bon ca fonctionne j'ai bien compris le fonctionnement (je pense).

    Par contre comment ca se passe si je veux lister les utilisateurs par exemple dans un gridview? Sapose problème?
    Ou faire une recherche d'un utilisateur par rapport à un prénom ou un nom?

    Merci d'avance.

  14. #14
    Membre confirmé Avatar de stephane.net
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Par défaut
    regarde les méthodes de la Class Membership

    pour lister tous les utilisateurs, tu peux très simplement en plaçant un gridview sur ta page "gvwUsers" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            gvwUsers.DataSource = Membership.GetAllUsers();
            gvwUsers.DataBind();
    pour le reste, je te laisse continuer avec MSDN...

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 48
    Par défaut
    Oui ça j'avais vu.
    Mais est-ce qu'il est possible de faire une recherche sur les profiles.
    (Date de naissance, prénom ...).

    Merci d'avance

Discussions similaires

  1. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07
  2. [Kylix] Re Re: débutant sur Kylix et Linux.....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/06/2002, 22h53
  3. [Kylix] Le débutant en Kylix et Linux....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 10h37
  4. Réponses: 3
    Dernier message: 07/05/2002, 16h06
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo