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ération du mot de passe


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    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 : 53
    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
    Points : 1 434
    Points
    1 434
    Par défaut Récupération du mot de passe
    Salut tout le monde.

    Je suis ennuyé sur un détail dans le contrôle PasswordRecovery. Je voudrais personnaliser le mail de renvoi du mot d epasse, mais je n'arrive pas à trouver le mot de passe.

    Dans l'évènement SendingMail on peut accèder au Body du mail qui va être envoyé, mais je ne trouve pas le moyen de lui injecter le mot de passe.

    Il y a un trés bel outils de remplacement qui marche comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    With e.Message
                .Body = e.Message.Body.Replace("##password##", mot de passe)
            End With
    Là, tel que je le présente, il prend le body que je lui est défini plus haut (c'est un ficher texte avec de la présentation dedans et un Tag à base de #) il cherche le Tag que j'ai mis dans ce fichier Texte et le remplace par le truc que je vais mettre à la place de "mot de passe".

    Sauf que là, je en trouve pas le moyen d'accéder au mot de passe.

    Avez vous une idée ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  2. #2
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu ne peux pas accéder au mot de passe, tout simplement parce qu'il n'est pas stocké dans la base (par défaut en tous cas)... Ce qui est stocké, c'est un hash qui permet de vérifier si l'utilisateur a entré le bon mot de passe. Il n'est donc pas possible de récupérer le mot de passe...

    En général, les systèmes de récupération du mot de passe génèrent un nouveau mot de passe, ou alors envoient un lien qui permet de changer le mot de passe.

    http://msdn.microsoft.com/fr-fr/libr...drecovery.aspx
    Citation Envoyé par MSDN
    Les utilisateurs peuvent récupérer des mots de passe uniquement lorsque le fournisseur d'appartenances a défini dans la propriété MembershipProvider prend en charge les mots de passe en texte clair ou chiffrés. Étant donné que les mots de passe hachés ne peuvent pas être récupérés, les utilisateurs des sites qui utilisent des mots de passe hachés peuvent uniquement réinitialiser leur mot de passe.

  3. #3
    Membre extrêmement actif
    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 : 53
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Ouaip, entièrement d'accord avec toi sur le principe, d'autant que le MembershipProvider que j'ai mis en place est de format Hashed.

    Mais, lorsque tu utilise le contrôle PasswordRecovery il t'envoi un mail avec le nouveau mot de passe, donc y a forcément un moment où il le capte en clair.

    Sauf que, ce mail envoyé est tout moche (en noir sur fon blanc). Moi je voudrais lui fournir un fichier texte contenant le formatage joli de mon site, comme je fais avec tous les autres contrôles du MemberShip.

    Et là, je sèche. Peut-être que je dois mettre un tag particulier dans mon fichier ou récupérer le mot de passe dans un évènement qui se passe avant cela ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  4. #4
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Ah ok... si tu as accès au texte de la réponse à la "question secrète", tu dois pouvoir réinitialiser toi-même le password avec MembershipUser.ResetPassword, et récupérer le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim user As MembershipUser = Membership.GetUser(passwordRecovery1.UserName)
    Dim newPassword As String = user.ResetPassword(passwordRecovery1.Answer)

  5. #5
    Membre extrêmement actif
    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 : 53
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.

    Ton exemple de code me parait super logique et j'avais tenté un truc dans le même genre mais sans succèe.
    J'ai donc copié trés précisément ce que tu me donne mais sur la ligne du NewPassword il me répond la chose suivante :
    La référence d'objet n'est pas définie à une instance d'un objet.
    Et là, je sèche !
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Sans doute parce que user est null...

    Tu as testé en pas à pas ?
    La propriété UserName du PasswordRecovery est bien définie ?
    Si l'utilisateur saisit son mail plutôt que son login, il faut récupérer le login à partir du mail avec Membership.GetUserNameByEmail

  7. #7
    Membre extrêmement actif
    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 : 53
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Effectivement, en mode pas à pas, User est égale à Nothing

    Le nom d'utilisateur est bien celui attendu dans la propriété UserName et il est bien indiqué comme dans la base de donnée.

    Je ne comprends pas pourquoi il ne me crée pas le User.

    Quant à la saisie de l'email, ce n'est pas encore l'objet de la chose. Il y a un texte qui explique bien ce qu'il faut saisir et sinon, il y a un mesage d'erreur trés explicite.

    Pour l'instant ça bloque sur le montage du MemberShipUser qui ne se fait pas pour un raison que j'ignore.

    Une idée ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  8. #8
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Bizarre... tu utilises le MembershipProvider standard, ou c'est un truc que tu as implémenté toi-même ?

  9. #9
    Membre extrêmement actif
    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 : 53
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Je crois que c'est standard, j'ai juste sépcifié des trucs dans le Web.config comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <add connectionStringName="DataDev" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" passwordFormat="Hashed" requiresUniqueEmail="true" name="MemberShipHashed" type="System.Web.Security.SqlMembershipProvider" />
    Et bien sûr je lui scotche ce MemberShipProvider comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:PasswordRecovery ID="pasrecov" runat="server"
            MembershipProvider="MemberShipHashed"
            SubmitButtonStyle-CssClass="lesboutons"></asp:PasswordRecovery>
    Rien d'autre.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  10. #10
    Membre extrêmement actif
    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 : 53
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Bon je crois que j'ai compris

    En fait, c'est du Hashed, donc de l'utra sécurisé (et là, le prochain que j'entend dire que Crosoft est une merde en sécu, je le tape fort, trés fort, tellement fort que ses enfants vont naitre avec un mal de crâne), ce qui fait qu'il est impossible d'intercepter le mot de passe tant qu'il n'est pas parti vers l'adresse mail enregistré dans la base de donnée.

    Donc, en gros, lorsqu'on click sur le bouton, on génère un nouveau mot de passe (MD2 oblige), le FrameWork prend le fichier pour la personnalisation et cherche un tag trés précis <%password%> et le remplace par le mot de passe, sinon, il envoi le mail avec ce qu'il trouve dans le fichier et basta.

    Et voilà le genre de mot de passe qu'il génère, digne des linuxiens les plus débiles que j'ai pu croiser : -|Cc?Db&Co|}*j

    De quoi filer une érection à Linus Torvald, ça, non ?

    En tout cas merci pour ton aide.
    Le point ne rentre pas dans les cases de mon sytème, mais j'ai réussi à faire un truc pas trop mal pour garer une bonne ligne dans l'apparence de mes mails.

    Bref, je peux passer à autre chose, et dormir tranquille par rapport à la sécurité de mes sites.

    Tiens, si ça te branche le site est maintenant en ligne, le concept peut être marrant, va voir pour te faire une idée : www.gimmefive.eu

    @ la prochaine TomLev
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

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

Discussions similaires

  1. [Joomla!] Récupération du mot de passe d'un utilisateur joomla?
    Par othmane126 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 15/05/2008, 16h32
  2. [Mail] Question sur la récupération de mot de pass
    Par spaukensen dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2008, 11h36
  3. Récupération du mot de passe d'un module VBA dans access
    Par Doctor_M_387 dans le forum Access
    Réponses: 5
    Dernier message: 05/04/2006, 13h46
  4. Console de récupération de mot de passe administrateur
    Par SteelBox dans le forum Windows XP
    Réponses: 2
    Dernier message: 04/01/2006, 23h15

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