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 :

Créer un utilisateur par code


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Créer un utilisateur par code
    Bonjour

    Je sèche complètement sur ce truc et je n'ai aucun moyen d'avancer.

    J'ai mis cette ligne de code sur le click d'un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Membership.CreateUser("toto", "pass", "barzi@free.fr", "question", "reponse", True, System.Web.Security.MembershipCreateStatus.Success)
    Mais il ne se passe rien. Je vois la page faire son postBack, mais rien dans la base de donnée, pas de message d'erreur, quedale !

    Pouvez vous m'aider ?

  2. #2
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    alors, la dernière variable, ce n'est pas à toi de la donner, c'est un variable de sortie, pour savoir ce qui s'est passé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Shared Function CreateUser ( _
        username As String, _
        password As String, _
        email As String, _
        passwordQuestion As String, _
        passwordAnswer As String, _
        isApproved As Boolean, _
        <OutAttribute> ByRef status As MembershipCreateStatus _
    ) As MembershipUser
    donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim status as membershipcreatestatus
    Membership.createuser("toto","test","marcel@free.fr","Pourquoi?","Parce que",true,status)
    response.write(status.tostring)

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je me demande comment le compilateur peut laisser passer un truc pareil... un paramètre ByRef ne peut pas accepter de valeur littérale !

    D'ailleurs, par curiosité, j'ai fait un petit test avec un paramètre de sortie :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Sub Main()
            GetValue(12)
        End Sub
     
        Sub GetValue(<Out()> ByRef x As Integer)
            x = 42
        End Sub
    Même avec Option Strict On, ça compile sans le moindre avertissement...

    La même chose en C# :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            static void Main(string[] args)
            {
                GetValue(12);
            }
     
            static void GetValue(out int x)
            {
                x = 42;
            }
    Résultat :
    Error 1 The best overloaded method match for 'ConsoleCS.Program.GetValue(out int)' has some invalid arguments
    Error 2 Argument '1' must be passed with the 'out' keyword
    Evidemment si je mets "out 12" ça ne marche pas non plus... ("A ref or out argument must be an assignable variable")

    Sérieusement, je considère ça comme un bug du compilateur VB.NET...

  4. #4
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    C'est pas faux.

    Connaissant comment ça marche, je n'ai jamais mis <OutAttribute>, mais c'est vrai qu'on y serait tenté.


  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
    Merci Poulain, j'avais pas compris ça comme ça, je pouvais luter comme un taré !

    ça marche vachement mieux comme ça.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Poulain Voir le message
    C'est pas faux.

    Connaissant comment ça marche, je n'ai jamais mis <OutAttribute>, mais c'est vrai qu'on y serait tenté.

    D'ailleurs cet attribut est assez bizarre je trouve... Dans la doc, tous les paramètres de sortie ont cet attribut en VB, mais pas en C#, alors que les attributs ne sont pas liés au langage (en C# il y a le mot-clé out) ... En plus, OutAttribute est dans le namespace System.Runtime.InteropServices, donc lié à l'interopérabilité. Donc je ne vois pas ce que ça vient faire dans des méthodes purement managées

    J'ai l'impression qu'en réalité cet attribut est juste utilisé en VB par convention, parce que ByRef n'est pas suffisant pour indiquer qu'il s'agit d'un paramètre de sortie et qu'il n'y a pas de mot-clé dédié. Ca fait un peu bricolage quand même... Ca veut dire qu'en VB tu dois faire référence au namespace d'interop pour faire une méthode avec des paramètres de sortie ??!

  7. #7
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    je ne voyais pas ça comme ça, mais t'as raison quand même.

    Je pensais qu'ils mettaient ça dans la doc msdn, juste pour dire que c'était un paramètre de sortie.

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

Discussions similaires

  1. Créer des variables par code
    Par mouaa dans le forum VBA Access
    Réponses: 5
    Dernier message: 20/03/2008, 16h29
  2. Insérer un composant utilisateur par code
    Par zooffy dans le forum ASP.NET
    Réponses: 9
    Dernier message: 27/12/2007, 15h19
  3. [VBA] créer ligne graphique par code
    Par cbleas dans le forum Access
    Réponses: 4
    Dernier message: 29/08/2006, 07h22
  4. Créer un utilisateur par programmation
    Par digital prophecy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/05/2006, 14h06
  5. [C#] Créer un label par code
    Par djoao dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/03/2006, 09h10

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