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

C# Discussion :

C# MaskedTextBox ou Regex mot de passe net


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 24
    Points : 18
    Points
    18
    Par défaut C# MaskedTextBox ou Regex mot de passe net
    Bonjour,

    OBJECTIF : contrôler la saisie d'un mot de passe pour qu'il comporte au moins, une lettre, un chiffre et un signe de ponctuation et qu'il fasse au moins 8 caractère.

    Technologies : DotNet, cSharp, MySQl sans procédure stockée, Visual Studio 2005

    Voilà j'ai essayé un Regex avec un textbox, mais j'ai des problème avec le point-virgule du mot de passe et l'utilisation du mot de passe dans la chaine de connexion, alors je me demande si ce ne serait pas plus pratique d'utiliser un masque avec un MaskedTextBox.

    QUESTION :
    Si vous avez la solution soit pour la mise en place et le format du regex précisément, soit pour le format précis du masque à appliquer si on opte pour un MaskedTextBox, je vous en serait reconnaissant si vous pouviez me l'indiquer.
    Je rappelle que le but est de controler qu'un mot de passe comporte au moins une lettre, un chiffre et un signe de ponctuation et que ce mot de passe est susceptible d'être utilisé pour la chaine de connexion à une base MySQL.

    Merci.
    David

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Essaye avec l'expression régulière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[._!]).{8,}$
    Cela impose la présence d'au moins une lettre minuscule, une lettre majuscule, un chiffre et un symbole de "ponctuation". Le tout avec une longueur minimale de 8 caractères.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Merci StormimOn pour cette réoponse rapide.

    1) Je vais tester celle-là donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = new Regex(@"^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[._!]).{8,}$");
    Parcontre je comprends pas comment elle fonctionne. Je regarde les éléments et grâce à cette page (http://geekswithblogs.net/brcraju/articles/235.aspx) je decompose mais je m'y retrouve pas.

    J'avais essayé celle-là entre autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Regex(@"([a-zA-Z])+([0-9])+[!-/:-@]+");
    ou ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = new Regex(@"([a-zA-Z])+([0-9])+[!:;,.?]+");
    mais je crois que j'avais un problème avec le point virgule, le slash et l'antislash. D'où le @ en début mais à la fin j'ai abandonné.


    en tout cas, je te tiens au courant pour ta formuile.
    Dis-donc avec plus de 1900 messages édités, tu es un grand spécialiste !

    Merci
    David

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Re moi,

    1) en fait, j'ai testé ton expression déjà sur cette page en ligne : http://www.regexplib.com/RETester.aspx

    et elle marche.

    Bien entendu, il faut essayer dans les conditions réelles du code, on est d'accord.

    2) J'ai aussi essayé sans ^ et $ parceque je comprends mal leur intérêt (à tort peut-être) et cela marche aussi.

    3) j'ai essayé la mienne modifiée comme ceci :
    ^([a-zA-Z]+)([0-9]+)([!-/:-@]+).{8,}$ ou sans les ^ $ et cela ne marceh pas .

    Conclusion :
    Ce qui me gène c'est que je ne comprends pas pourquoi la tienne marche et que je ne comprends pas pourquoi la mienne ne marche pas.

    Donc, je ne suis as contre un petit éclairssement de la synthaxe utilisé et de mes erreurs. Si tu as le temps car le principale, tu me l'as déjà donné, c'est une solution qui marche !

    Et encore merci pour ta solution.
    david

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Re re moi

    J'ai bien l'impression que ?=.* permet de compter le nombre de caractères saisis , nombre comparé avec le .{8,} évidemment.

    David

  6. #6
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    J'aurai du expliquer un peu le principe parce que c'est parce qu'une telle expression n'est pas ce qu'il y a de plus simple quand on débute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[._!]).{8,}$
    ^ représente le début de la chaîne de caractère. Si ta chaîne d'entrée est "abracadabra", le ^ représente la position juste avant le premier a.

    (?=.*[a-z]) va vérifier si après la position en cours (le début de la chaîne donc, puisqu'on est juste après le ^), on trouve au moins une lettre minuscule. On ne consomme pas de caractères à ce stade, la position dans la chaîne d'entrée ne change donc pas. De la même façon (?=.*[A-Z]) s'occupera de vérifier s'il y a des majuscules, idem pour les chiffres avec (?=.*[0-9]) et les caractères spéciaux via (?=.*[._!]).

    Donc l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[._!])
    permet de vérifier si la chaîne contient les caractères requis. Ensuite il faut finir en tenant compte du nombre de caractère, pour cela on ajoute
    afin d'indiquer qu'il faut au moins 8 caractères peut importe lesquels, la vérification ayant été faite plus tôt. Le $ (fin de la chaîne) n'est pas vraiment nécessaire dans ce cas de figure, c'est plus par habitude.

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

Discussions similaires

  1. c# textbox évènement regex mot de passe
    Par Teatimerelax dans le forum C#
    Réponses: 1
    Dernier message: 04/12/2009, 00h07
  2. [vb.net][cryptage] crypter simplement un mot de passe
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 05/01/2006, 12h24
  3. [VB.NET] cryptage de mot de passe.
    Par leSeb dans le forum Windows Forms
    Réponses: 16
    Dernier message: 28/05/2005, 15h06
  4. [VB.NET] Fichier Excel vérouillé avec mot de passe
    Par rafano dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/06/2004, 15h36
  5. [VB.NET] Proteger mon site par mot de passe
    Par stephane93fr dans le forum ASP.NET
    Réponses: 8
    Dernier message: 19/01/2004, 09h53

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