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 :

Comment creer un systeme d'authentification ?


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment creer un systeme d'authentification ?
    slt svp comment faire un accées au base de données apatire d'un formulaire d'authentification et verifer le login et mot de passe d'un utilisateur ?
    Nom : LOGIN.PNG
Affichages : 1176
Taille : 61,3 Ko

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    si tu as une base de données alors tu vas sûrement faire une table "users".
    Dans cette table il y aura un champ "login" et un champ "pass".
    Quand l'utilisateur de ton appli saisie ces valeurs dans tes TextBox tu fais une requête pour voir si le couple user/pass existe dans cette table.
    Si oui alors tu valides la connexion, sinon tu avertis l'utilisateur de ton appli qu'il s'est planté.
    Ça c'est pour la version de base, maintenant niveau sécu c'est pas ça, il faut normalement et à minima hasher le pass. On y reviendra si besoin.

    NB : les noms de table et de champs sont là à titre indicatif, tu les appelles comme tu veux.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 219
    Points : 76
    Points
    76
    Par défaut
    bonjour
    comme il a dit c'est cela, après à la création de ta table user, tu crées un formulaire windows form et avec ta boite à outils tu crées le masque de saisie des données de connextion, tu pourrais masque la partie mot de passe en remplaçant les caractères saisies par des *

  4. #4
    Membre habitué

    Homme Profil pro
    Développeur .Net et Web, Ingénieur en Analyse et Conception de SII
    Inscrit en
    Octobre 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur .Net et Web, Ingénieur en Analyse et Conception de SII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 82
    Points : 144
    Points
    144
    Billets dans le blog
    2
    Par défaut

    Plus souvent le login dans la partie form est representé par un combobox et sont Items rempli directement avec le champ user de la table depuis la BD...
    Fely Kanku Developpeur .Net et analyste programmeur

  5. #5
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Felykanku Voir le message

    Plus souvent le login dans la partie form est representé par un combobox et sont Items rempli directement avec le champ user de la table depuis la BD...
    Bonjour,

    C'est une pratique à proscrire pour l'authentification ! Personne ne doit connaitre les login stockés dans la BDD, cela est considéré comme étant une faille de sécurité.......

    Ensuite je rejoins jopopmk pour le hachage du mdp niveau sécurité :

    ++

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 219
    Points : 76
    Points
    76
    Par défaut
    Bonjour
    voici un bout de code pour te permettre de faire un login d'authentification
    tu te débrouillera pour faire le formulaire avec les nom de variables
    il fonctionne bien dans mon projet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
     
    namespace GESTIONPROJET
    {
        public partial class Login : Form
        {
            public Login()
            {
                InitializeComponent();
            }
     
            private void btn_entree_Click(object sender, EventArgs e)
            {
                SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=PROJETATA;Integrated Security=True"); ;
                SqlDataAdapter sda = new SqlDataAdapter("Select count(*) From UTILISATEUR where LOGIN = '" + tblogin.Text + "' and mdp = '" + tbmdp.Text + "'",con);
                DataTable dt = new DataTable();
                if (dt.Rows[0][0].ToString() == "1")
                {
                    this.Hide();
                    MMenu ss = new MMenu();
                    ss.Show();
                }
                else
                {
                    MessageBox.Show("Veuillez resaisir votre Login et Mot de passe");
                }
            }
     
            private void btn_quitter_Click(object sender, EventArgs e)
            {
                this.Close();
            }
        }
    }
    bonne continuation et courage, on se suit.

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par kitcarson23 Voir le message
    voici un bout de code pour te permettre de faire un login d'authentification
    Bah voyons, une requete SQL qui n'utilise meme pas de parametres et qui est utilisee sur un formulaire d'identification On aura tout vu
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Je suis pas sûr qu'on devrait continuer à discuter de ça, on a pas revu l'OP depuis la création du topic ...

    @kitcarson23 : en faisant une requête "concat" tu t'exposes à une vieille faille de sécurité bien connue : l'injection SQL.
    Deux exemples "dans l'idée" qui seront plus parlants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tbmdp.Text = "' OR 1 = 1"; // alors la requête passe, même si le usr/mdp ne sont pas bons
    tbmdp.Text = "'; drop database;"; // la requête retourne 0, mais derrière elle supprime la DB
    Il faut donc utiliser les requêtes paramétrés qui sauront gérer tout ça proprement (ou le faire à la main, mais pourquoi réinventer la roue ?)

    + dans ton code, perso, je passerais plutôt par une DbCommand avec un ExecuteScalar.

    + c'est au moment de cette requête qu'intervient le hash pour la partie connexion :
    en base on ne sauvegarde pas le mot de passe mais son hash (une sorte d'empreinte du mot de passe).
    Comme c'est une opération sensément non-réversible on n'a plus accès au MDP original.
    Pour valider une connexion on va donc appliquer à nouveau la fonction de hash (y'en existe plusieurs) au MDP saisi par l'utilisateur pour le comparer au hash qu'on a en base. Et voilà !
    Plus je connais de langages, plus j'aime le C.

Discussions similaires

  1. aider moi svp
    Par Damish dans le forum ASP
    Réponses: 15
    Dernier message: 27/09/2006, 14h17
  2. aider moi svp mon ordinateur plante
    Par nouri.moudhffar dans le forum Windows XP
    Réponses: 15
    Dernier message: 04/08/2006, 22h05
  3. aider moi SVP
    Par FRIBGANE dans le forum ASP
    Réponses: 3
    Dernier message: 19/10/2005, 16h29

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