Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Dotnet > Visual Basic .NET > ASP.NET

ASP.NET ASP.NET - Forum d'entraide sur la programmation ASP.NET & Développement Web en Visual Basic .NET. Avant de poster -> FAQ ASP.NET, Articles ASP.NET

Réponse
 
Outils de la discussion
Vieux 05/12/2008, 10h52   #1 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut Question pointue sur le MemberShip

Salut

Petit détail qui pourrait ne pas avoir d'importance, mais voilà, le public non informaticien aime bien les trucs facile à comprendre
J'ai implémenté le mebership avec un Provider de cet accabit :
Code :
 
<membership>
	<providers>
		<add connectionStringName="DataDev" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" enablePasswordRetrieval="true" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Clear" requiresUniqueEmail="true" name="MemberShipBase" type="System.Web.Security.SqlMembershipProvider"/>
	</providers>
</membership>
 
Lorsque l'utilisateur ne rempli pas les conditions de mot de passe ila le message suivant :
Citation:
Password length minimum: 4. Non-alphanumeric characters required: 0.
Vous remarquerez qu'il est en anglais car le serveur est en culture anglaise, mais qu'en plus, à part pour un informaticien bien geek, le message n'est pas trés "séxy".

Donc j'ai plongé dans le MSDN espérant trouver une propriété du MemberShip pour spécifier un message d'erreur et là, peau de balle, rien, nada.

Avez vous une idée ?
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 11h11   #2 (permalink)
Membre Confirmé
 
Avatar de predalpha
 
Date d'inscription: novembre 2006
Localisation: Ambilly
Âge: 26
Messages: 228
Par défaut

Salut Zooffy, est ce que c'est ca?

n'utilisant pas le membershipprovider, je te laisse avec mon pifometre

http://msdn.microsoft.com/en-us/libr...ge(VS.85).aspx
predalpha est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 11h23   #3 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut

Merci pour ton aide PredAlpha

En fait, ce truc là fonctionne lorsque tu défini ton MemberShip dans ta page ou ton composant. Mais il est supplenté par un autre truc (celui que je cherche) lorsque tu défini ton MemberShipProvider dans le Web.config, comme moi j'ai fait.

De ce que j'ai réussi à comprendre c'est lorsque tu défini une longueur dnas le Web.Config, sur supplente toute les propriétés du CreatUserWizard ou alors, j'ai pas vu le détail qui tue.

Une autre idée peut être ?
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 11h54   #4 (permalink)
Modérateur
 
Avatar de lutecefalco
 
Date d'inscription: juillet 2005
Âge: 29
Messages: 2 784
Par défaut

C'est du C# mais t'es devenu un pro de la traduction maintenant

Code :
 
protected void CreateAccountButton_Click(object sender, EventArgs e) {
MembershipCreateStatus createStatus;      
MembershipUser newUser = Membership.CreateUser(Username.Text, Password.Text, Email.Text, passwordQuestion, SecurityAnswer.Text, true, out createStatus);      
switch (createStatus)      
{           
    case MembershipCreateStatus.Success:
        CreateAccountResults.Text = "The user account was successfully created!";
        break;           
    case MembershipCreateStatus.DuplicateUserName:
        CreateAccountResults.Text = "There already exists a user with this username.";
        break;           
    case MembershipCreateStatus.DuplicateEmail:
        CreateAccountResults.Text = "There already exists a user with this email address.";
        break;           
    case MembershipCreateStatus.InvalidEmail:
        CreateAccountResults.Text = "There email address you provided in invalid.";
        break;           
    case MembershipCreateStatus.InvalidAnswer:
        CreateAccountResults.Text = "There security answer was invalid.";
        break;           
    case MembershipCreateStatus.InvalidPassword:
        CreateAccountResults.Text = "The password you provided is invalid. It must be seven characters long and have at least one non-alphanumeric character.";
        break;           
    default:
        CreateAccountResults.Text = "There was an unknown error; the user account was NOT created.";
        break;      
    } 
}
 
__________________
Ma page perso - Mon blog
Pas de question technique en MP
**** Oseras-tu affronter ma brute? ****
lutecefalco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 12h20   #5 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut

Merci LuteceFalco.
Effectivement, la translation de code ne va pas être trés compliquée.

Mais j'ai un souci pour comprendre le contexte de ce code. En fait il s'git une Sub sur le click d'un bouton, mais là, tu pars du principe que le bouton est ajouté manuellement. Hors, dans mon cas, j'utilse le bouton du controle CreateUserWizard.

Donc, si je suis ton raisonnement, il faut que je rajoute un Label pour accueilir le message et que je me plug sur le OnClick du bouton du contrôle CreateUserWizard, c'est bien ça ?

Du coup, je perd l'automatisation du contrôle, c'est moyen pas cool.

Ce que je comprend pas c'est que les messages d'erreur sont bien stocké quelquepart, on peut pas les modifier ?
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 12h31   #6 (permalink)
Modérateur
 
Avatar de lutecefalco
 
Date d'inscription: juillet 2005
Âge: 29
Messages: 2 784
Par défaut

Je sais pas si tu peux modifier les messages par défaut
__________________
Ma page perso - Mon blog
Pas de question technique en MP
**** Oseras-tu affronter ma brute? ****
lutecefalco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 12h44   #7 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut

Ben si toi, balaise comme tu es, tu sais pas, qui va savoir ?

Décidément, je crois que le MemberShip est comme une belle blondasse sur la plage d'Ibiza : t'en a envie, mais tu l'auras jamais ! ! !

Sinon, j'ai eu un idée dans la même veine, grâce à ton code, mon cerveau a fontionné différement.

Je viens d'essayer ça :
Code :
 
    Protected Sub CreateUserWizard1_CreateUserError(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CreateUserErrorEventArgs) Handles CreateUserWizard1.CreateUserError
        Select Case e.CreateUserError
            Case MembershipCreateStatus.DuplicateEmail
                lblErMsg.Text = "email duplique, poil au nez"
            Case MembershipCreateStatus.InvalidPassword
                lblErMsg.Text = "pas bon le password"
        End Select
    End Sub
 
Parce que, la sub que j'utilise est celle qui démarre lorsque le User est Created. Il y a aussi une Sub qui démarre lorsuqe le User est Creating (tu suis toujours les petite subtilité ?)

Du coup, lorsque je plante le mot de passe ou que je mets un email dupliqué, j'ai bien un message d'erreur personalisé qui s'affiche, mais j'ai aussi, le message par défaut. Et bien sûr, je trouve pas le moyen de lui dire de pas s'afficher, qu'un autre message plus sympa à pris sa place. En fait, je crois qu'il fit de la résistance car il ne veut pas se faire virer comme ça !

Aurais tu une idée ?
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 12h57   #8 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut

OK, cherchez plus, j'ai trouvé :
En fait, parmi les propriétés du CreateUserWizard, y un truc qui traine et qui permet de remplacer les message d'erreur par défaut. Fallait jsute comprendre que les 12 millions de message doivent être géré les uns aprés les autres.

Donc j'ai fini par trouvé un truc du genre :
Code :
CreateUserWizard1.InvalidPasswordErrorMessage = dt.Rows(0).Item("InvalidPasswordErrorMessage")
Et donc je le charge avec un truc stocké en base de donnée. Et y en a plein de comme ça, bien planqué parmi les centaine de propriété du contrôle. Mais c'est la mouise, faut tout reprendre.

Merci pour votre coup de main.
A force, je vasi peut être devenir expert MemberShip, je vais ouvir ma rubrique !

Bon week-end à tous, ça m'a bien gavé, je crois que je faire du Wow le restant de l'aprés midi.
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/12/2008, 13h08   #9 (permalink)
Modérateur
 
Avatar de lutecefalco
 
Date d'inscription: juillet 2005
Âge: 29
Messages: 2 784
Par défaut

Citation:
Envoyé par zooffy Voir le message
Bon week-end à tous, ça m'a bien gavé, je crois que je faire du Wow le restant de l'aprés midi.
Ils embauchent dans ta boite
__________________
Ma page perso - Mon blog
Pas de question technique en MP
**** Oseras-tu affronter ma brute? ****
lutecefalco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/12/2008, 09h24   #10 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut

Ah, toi, t'a pas suivi les dernières péripéties de ma carrière : je suis licencié depsui le 28 Octobre !

Ma boite, ben comme tu dis, c'est MA Boite. J'ai décidé de me mettre à mon compte. Du coup, ils embauchent, ben pas pour l'instant, mais qui sait, peut être un jour. Faudra que tu abandonne ton habitat parisien pa contre.

Sinon, je me retrouve devant mon problème, presque comme au début. Ce matin, aprés un bon week-end, je me suis dis que j'allais pouvoir enquiller gentillement et finir mon formulaire et bien peau de balle.

Alors voici la decription, le code est plus bas.

Sur la prorpiété InvalidPasswordErrorMessage, j'envoi un texte qui veint de la BDD et tout va bien, il remplace le texte par défaut.
Sur la propriété DuplicateUserNameErrorMessage, que dalle. Il me mets le texte par défaut du FrameWork

Et là, je m'arrache le cheveux : comment le CreateUserWizard peut il traiter deux propriétés trés similaire de manière si différentes ?

Donc le code, comme ça vous verrez que c'est assez simple :
Code :
 
With CreateUserWizard1
            .InvalidPasswordErrorMessage = dt.Rows(0).Item("InvalidPasswordErrorMessage")
            .DuplicateUserNameErrorMessage = dt.Rows(0).Item("DuplicateUserNameErrorMessage")
End With
 
Et en plus, j'ai pris soin de nommer mes champs avec le nom exact de la propriété, histoire de pas me mélanger.

Bref, j'y perd mon assembleur.
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/12/2008, 10h04   #11 (permalink)
Modérateur
 
Avatar de lutecefalco
 
Date d'inscription: juillet 2005
Âge: 29
Messages: 2 784
Par défaut

T'es sûr que les valeurs stockées dans dt sont bonnes?
__________________
Ma page perso - Mon blog
Pas de question technique en MP
**** Oseras-tu affronter ma brute? ****
lutecefalco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/12/2008, 10h25   #12 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut

Oui, j'ai plein d'autres trucs dans cette table puisque c'est avec elle que je gère tous les textes de label, de boutons et autres.

Dans mon morceau de code je t'ai pas tout mis car la Sub fait plus de 200 lignes.

Pour être vraiment sûr j'ai fait ça comme test :
Code :
 
With CreateUserWizard1
            '.InvalidPasswordErrorMessage = dt.Rows(0).Item("InvalidPasswordErrorMessage")
            .DuplicateUserNameErrorMessage = dt.Rows(0).Item("DuplicateUserNameErrorMessage")
            .InvalidPasswordErrorMessage = dt.Rows(0).Item("DuplicateUserNameErrorMessage")
End With
 
Et là j'ai bien le message de duplication de mail sur l'erreur de mot de passe.


Heu, attends. Pendant que j'écrivais cette réponse, j'ai refait le test, puis je suis revenu à la normale et je m'aperçois que maintenant il me donne le bon messsge sur les bonnes erreurs. Je comprends plus rien ou alors tu es un champion du hackage et tu es entré sur ma bécanne pour tout corrigé sans que je te vois.......

Ou alors, l'informatique est un réligion et tu es un grnad prêtre, tu as demandé au dieu de l'Octet de faire une action et tes prières viennent d'être exocées.

Bref, je comprends plus rien. Mais merci pour ton aide. décidément, l'informatique est une science de moins en moins exacte..............

Kenavo
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/12/2008, 10h26   #13 (permalink)
Modérateur
 
Avatar de lutecefalco
 
Date d'inscription: juillet 2005
Âge: 29
Messages: 2 784
Par défaut

Tu compiles bien à chaque fois?
__________________
Ma page perso - Mon blog
Pas de question technique en MP
**** Oseras-tu affronter ma brute? ****
lutecefalco est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/12/2008, 10h54   #14 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut

oui, oui, la compilation est automatique à chaque lecture de la page (si elle a été modifiée dans son code).

Mais en plus, vu que je travaille sur des sesions d'utilisateur avec connexion, je me déconnecte et je me reconnecte pour être sûr de ne pas avoir un problème de session ou de mémoire.

Bon, l'important c'est que ça marche, on verra si ça tient la route ensuite.
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/12/2008, 09h23   #15 (permalink)
Expert Confirmé
 
Avatar de zooffy
 
Date d'inscription: août 2004
Localisation: MUZILLAC
Âge: 38
Messages: 1 844
Envoyer un message via MSN à zooffy
Par défaut

Bon, ben à chaque jour son lot d'incohérence.

Ce matin, monsieur le composant a décidé de ne plus fonctionner et me renvoi le message par défaut sur la duplication de mail.

Je n'y comprends plus rien. J'ai vraiment besoins d'un coup de main pour descendre une batterie de test qui me permettra de trouver d'où vient ce problème et lui régler son compte.

J'ai l'impression qu'un Korrigan se balade dans mon code.
__________________
La Bretagne ça vous gagne
Et pour plus d'info sur la bête c'est là : COUCOU

Aidez Valborinn à prospérer !
zooffy est déconnecté   Envoyer un message privé Réponse avec citation
NEWS DOTNETFAQs .NETTUTORIELS .NETSOURCES .NETLIVRES .NETOUTILS .NETBLOG .NETDOTNET TV

Réponse

Précédent   Forum des développeurs > Dotnet > Visual Basic .NET > ASP.NET



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide