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 :

Récupérer le User à partir du CreateUserWizard


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Récupérer le User à partir du CreateUserWizard
    Salut

    J'ai mis en place un CreateUserWizard. Dans le processus d'inscription, au niveau de l'évènement CreatedUser, je voudrais le basculer à IsApporved = False.

    Donc j'ai mis ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim userlog As MembershipUser = Membership.GetUser(CreateUserWizard1.UserName)
            userlog.IsApproved = False
    Mais il me lance un message d'erreur
    La référence d'objet n'est pas définie à une instance d'un objet.
    Et là, je comprends plus trés bien. Est ce que le User est perdu car il n'est pas connecté ?

    Et surtout, comment faire pour le récupérer.

    Mon but final est de faire un formulaire d'inscription sur mon site avec un blocage, un envoi de mail et une confirmation d'inscription.

    Merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Crée le directement en IsApproved = false en utilisant une surcharge de CreateUser: http://msdn.microsoft.com/en-us/library/82xx2e62.aspx

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Donc, en gros, je laisse tomber le contrôle CreateUserWizard et j'en refabrique un à ma sauce.

    L'idée est séduisante, mais un peu frustrante, vu le temps que j'ai passé à programmer un CreateUserWizard paramettrable.

    C'est quand même bizarre qu'on ne puisse pas récupérer le User en cours de création.

    Je vais analyser ça un peu plus en profondeur, mais si y a un autre moyen je préfèrerais.

    Merci pour ton aide.

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Donc, en gros, je laisse tomber le contrôle CreateUserWizard et j'en refabrique un à ma sauce.

    L'idée est séduisante, mais un peu frustrante, vu le temps que j'ai passé à programmer un CreateUserWizard paramettrable.

    C'est quand même bizarre qu'on ne puisse pas récupérer le User en cours de création.

    Je vais analyser ça un peu plus en profondeur, mais si y a un autre moyen je préfèrerais.

    Merci pour ton aide.
    Je pense que tu peux utiliser ton wizard. T'as juste à intercepter le clic sur le bouton et faire ton traitement au lieu de celui par défaut.
    Sinon, je pense que ta solution devrait marcher. Doit juste y avoir un ptit bug

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ben justement, c'est dans le click du bouton que je fais le truc, enfin dans une partie du Click. Le conrôle CreateUserWizard n'a pas de click à proprement parler. En fin de message je mets le code complet de la procédure.

    Par contre, j'ai analysé ton idée de surcharge. C'est vrai que c'est carrément mieux, je vais avoir plus de liberté. Mais j'ai un souci, alors je vais faire ma chieuse blonde : je voudrais les deux.....

    Donc, sur la surcharge, je n'arrive pas à lui déterminer le MemberShipProvider de manière spécifique car j'ai 3 Provider pour l'instant, mais je vais en avoir pas mal d'autre (c'est parce que j'ai plusieurs sites en un seul, donc les règles d'inscription ne sont pas les mêmes).

    Ensuite, pour revenir sur l'interception du click, je vois pas du tout comment je peux faire. Quand on click sur le bouton du contrôle CreateUserWizard on déclenche une sérié d'évènements (voir exemple en fin de message) mais en fait, y a pas vraiment de "Click" comme sur un bouton classique.

    Là j'ai mis le CreatedUser, mais y a aussi un CreatingUser (qui doit intervenir avant) et y a l createUserError (qui doit intervenir lorsqu'il y a une erreur sur la céation du User). Bref, une suite d'évènement qui s'enchainent parmi lesquels j'ai du mal à capter le User lui même.
    Ou alors il y a une déclaration que je dois pas bien faire pour scotcher le User dans un objet que je pourrais manipuler.

    Vois tu mon souci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Protected Sub CreateUserWizard1_CreatedUser(ByVal sender As Object, ByVal e As System.EventArgs) Handles CreateUserWizard1.CreatedUser
            Roles.AddUserToRole(CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("UserName"), TextBox).Text, dt.Rows(0).Item("RoleDefault"))
            Dim cuw As CreateUserWizard = sender
            Dim userlog As MembershipUser = Membership.GetUser(GetNomUser(GetUserGUID().ToString))
            userlog.IsApproved = False
            FormsAuthentication.SignOut()
     
        End Sub

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Déjà, pour enregistrer tes modifs, tu dois faire un MemberShip.UpdateUser(ton_user).

    Ensuite, est-ce que les fonction suivantes te retournent bien le résultat attendu:
    GetUserGUID()
    GetNomUser(GetUserGUID().ToString)
    Membership.GetUser(GetNomUser(GetUserGUID().ToString))

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ok pour l'enregistrement, c'est vrai que j'avais oublié ce détail, mais je pense que cela me serait revenu.

    Ensuite, oui, les fonctions remontent bien les valeurs attendues.

    Mais le soui persiste. Visiblement, le MemberShipUser ne s'initialise pas, comme si le User n'était pas créé. Cette histoire de référence d'objet me perturbe beaucoup car je ne vois pas bien comment faire un New là où il n'en demande pas.

    Je vais ouvrir un autre topic pour suivre ton autre voie qui reste trés interresante.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Par défaut
    C'est pas la propriété DisableCreatedUser du CreateUserWizard que tu veux ?

    Sinon pour réccupérer l'utilisateur, j'avais fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Protected Sub OnCreatedUser() Handles myCreateUserWizard.CreatedUser
    '...Membership.GetUser(myCreateUserWizard.UserName)...
    End Sub

  9. #9
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Un grand merci à toi naindjardin, le DisableCreatedUser c'est exactement ce que je cherchais.

    Le reste se passe pas trop mal pour l'instant.

    Mais dis moi : est ce que tu maitrise bien les contrôles qui tournent autour du MemberShip, genre le CreateUserWizard, le Login ou le PasswordRecovery ?

    Parce que, peut être tu pourrais aprtager ton expérience avec moi. J'ai décidé de faire tounrer toute ma sécurité autour du MemberShip et je bute un peu sur la confiramtion d'inscription. J'ai cru voir un jour dans un article qu'on pouvait générer un mail plus ou moins automatique avec un lien de confirmation, mais je ne retrouve plus cet article et je ne vois pas trés bien quoi utiliser.
    Pour l'instant mon idée est de faire un truc totalement "manuel" avec l'envoi d'un mail contenant un lien qui passe en paramttre le UserId, mais il existe peut être un contrôle que je ne connais pas qui fait ça trés bien ?

    Encore merci.

  10. #10
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Là, tu trouveras ton bonheur: http://www.asp.net/Learn/Security/

  11. #11
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci LuteceFalco, ce tuto me parait assez interressant pour revisiter les bases et répond à une question précise que j'avais : faire une sytème de validation de compte. Toutefois, dans le tuto, ils partent d'une idée de management par le WebMaster alors que moi je voudrais faire un mail et le gars click.

    Bon, je pense pouvoir adapter leur code pour faire ce que je veux.

    Mais pour le reste; ce tuto ne m'a rien appris de nouveau. C'est un tuto supervisé par Microsoft et comme à leur habitude (mis c'est tout à fait normal) ils ne déscendent pas tré loin dans l'exploitation des contrôle, ils restent dans un cas trés général. Mais bon, ça donne un bon point de départ.

    Merci

    Kenavo

  12. #12
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Merci LuteceFalco, ce tuto me parait assez interressant pour revisiter les bases et répond à une question précise que j'avais : faire une sytème de validation de compte. Toutefois, dans le tuto, ils partent d'une idée de management par le WebMaster alors que moi je voudrais faire un mail et le gars click.
    T'as suivi tous les tutos?
    Car ce point là est abordé et ils montrent aussi comment utilisé un template de mail et tout et tout

  13. #13
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Je vais revisiter car j'ai pas vu tant de lien que ça. J'en ai certainement loupé. Mais surtout, vu ce que tu dis, je pense que je ne dois pas avoir bien traduit certaines choses car je n'ai pas vu d'envoi de mail.

    Bon, je vais relire et je te tiens au courant. Maintenant, je ne crois aps revenir sur tout ça avant le 8-10 Janvier (fêtes + déménagement = beaucoup de chose à faire)

    Kenavo

  14. #14
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Je vais revisiter car j'ai pas vu tant de lien que ça. J'en ai certainement loupé. Mais surtout, vu ce que tu dis, je pense que je ne dois pas avoir bien traduit certaines choses car je n'ai pas vu d'envoi de mail.

    Bon, je vais relire et je te tiens au courant. Maintenant, je ne crois aps revenir sur tout ça avant le 8-10 Janvier (fêtes + déménagement = beaucoup de chose à faire)

    Kenavo
    T'as 14 tutos sur la page

  15. #15
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bien, ben c'est exactement ce que j'avasi trouvé, mais 14 tutos, vu le sujet, ça me paraissait pas si énorme. Bref, faut que je travaille double pour comprendre les explications en Anglais. C'est bête, pour une fois que Microsoft ne traduit ces trucs....

    Sinon, j'ai solutionné le problème pour CreateUserWizard, mais j'ai toujours le même problème avec le Login

    Le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Protected Sub Login1_LoggingIn(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles Login1.LoggingIn
            Dim u As MembershipUser = Membership.GetUser(Login1.UserName)
            If u.IsApproved = False Then
                Response.Redirect(GetPage("Confirmation", enTypeRetour.lien))
            End If
        End Sub
    me remonte l'erreur suivante :
    La référence d'objet n'est pas définie à une instance d'un objet.
    sur la ligne du test IF.
    J'ai pourtant l'idée de naindjardin, mais soit je vois pas l'erreur de codage, soit c'est pas comme ça qu'il faut faire.

    Une idée ?

Discussions similaires

  1. récupérer l'user name à partir de l'uid
    Par Hypnocrate dans le forum Administration système
    Réponses: 2
    Dernier message: 02/07/2007, 16h50
  2. Récupérer des floats à partir d'une string
    Par hamster dans le forum SL & STL
    Réponses: 8
    Dernier message: 09/06/2005, 08h10
  3. [JTree] Récupérer le modèle à partir de la sélection
    Par bizerta dans le forum Composants
    Réponses: 7
    Dernier message: 08/06/2005, 13h18
  4. Réponses: 11
    Dernier message: 08/04/2005, 11h20
  5. Réponses: 3
    Dernier message: 24/09/2004, 21h21

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