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 :

Membership mettre l'email à la place du UserName --> Object reference not set to an instance of an object [Débutant]


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 142
    Par défaut Membership mettre l'email à la place du UserName --> Object reference not set to an instance of an object
    Bonjour,

    Je reprend, un site utilisant le membership, que je connais pas.

    Je souhaite juste que le UserName du CreateUserWizard soit l'email.

    Lorsque je met un nom d'utilisateur classique genre "toto" tout se deroule bien, lorsque je met un email, il me met l'erreur
    Object reference not set to an instance of an object
    sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Membership.GetUser().ProviderUserKey.ToString();
    Page1 --> Formulaire ou l'ont met le CreateUserWizard

    Page 2 --> Instruction pour retrouver et enregistrer l'utilistauer dans la bdd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string req = "SELECT * FROM aspnet_UsersInRoles WHERE UserId='" + Membership.GetUser().ProviderUserKey.ToString() + "'";
    Et c'est sur la page 2 que j'obtiens l'erreur. je pense donc que l'erreur se produit a cause du @ vue que sa fonctionne très bien dès qu'il n'y a plus le @.

    Comment faire ?

    Merci.


    Guillaume.

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,
    Citation Envoyé par slacky Voir le message
    Et c'est sur la page 2 que j'obtiens l'erreur. je pense donc que l'erreur se produit a cause du @ vue que sa fonctionne très bien dès qu'il n'y a plus le @.
    Si c'est le cas la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM aspnet_UsersInRoles WHERE UserId='toto@domain.com'";
    devrait te retourner un résultat, non? Tu as essayé dans SQL Server Management Studio?
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 142
    Par défaut
    Edit : un truc pas clair, je reviens plus tard, je suis meme plus sure que se soit un probleme d'@. je refais des tests et viens réexpliquer mon soucis.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 142
    Par défaut
    UserId est un UniqueIdentifier que l'ont récupère je pense avec le ProviderUserKey. donc avec l'email ça ne renvoie rien et avec l'id il renvoie vie pour le RoleId et UserId, donc le problème viens de là.

    Après plusieurs test :
    Quand je lui passe un email en UserName j'ai l'erreur.
    Quand je lui passe un nom "normal" sans caractère spéciaux, ça fonctionne.

    Quand le passage avec le UserName "normal" est fini, je recommence en mettant cette fois ci un email et là ça fonctionne !

    On dirais qu'il doit initialiser qqchose sur le site ou je sais pas. La je suis perdu completement. Mais bon en effet il faut que le RoleId et UserId se remplisse donc je vais continuer à chercher.


    EDIT : Ah j'oublais j'ai testé de mettre en Session le UserName de mon CreateUserWizard et de le passer en paramètre à GetUser(Session["UserName"]).ProviderUserKey, et la ça fonctionne

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Et ma question...
    Citation Envoyé par Immobilis Voir le message
    Salut,Si c'est le cas la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM aspnet_UsersInRoles WHERE UserId='toto@domain.com'";
    devrait te retourner un résultat, non? Tu as essayé dans SQL Server Management Studio?
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 142
    Par défaut
    Oui je t'ai répondu :

    UserId est un UniqueIdentifier que l'ont récupère je pense avec le ProviderUserKey.

    Donc avec l'email ça ne renvoie rien car impossible de convertir une chaine de caractère en unique identifier
    SELECT * FROM aspnet_UsersInRoles WHERE UserId='toto@domain.com'

    Et avec l'UserId que je trouve dans ma table User, il renvoie vide pour le RoleId et UserId, donc le problème viens de là.
    SELECT * FROM aspnet_UsersInRoles WHERE UserId='d86c460a-bb2c-4c35-9fe1-0816a3c3f430'

  7. #7
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par slacky Voir le message
    Oui je t'ai répondu
    Ok autant pour moi. Je ne suis pas certain de bien tout comprendre. Si ton membership utilise un username pour trouver le userid, je vois pas trop comment ça peut marcher si tu lui envois une adresse email. Il faut que tu modifies l'implémentation de la méthode qui gère cette recherche.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 142
    Par défaut
    Bon, j'ai trouvé l'erreur, le nom d'utilisateur et l'email doivent être différents. ou reste a trouver comment faire pour que le membership accepte les deux meme nom.

    Je met en résolu le post, je viendrais mettre ma réponse si je trouve comment faire ou si vous le savez

    Merci a vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mettre à jour un objet place dans le contexte de l'appli
    Par lilli1407 dans le forum Struts 1
    Réponses: 6
    Dernier message: 09/11/2006, 16h58
  2. mettre une virgule à la place d'un point
    Par michelle1000 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/10/2006, 07h29
  3. Mettre un "0" à là place d'une cellule vide.
    Par P'tit Lio dans le forum Access
    Réponses: 22
    Dernier message: 24/07/2006, 14h19

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