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 ?
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 ?
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.
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 *
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
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.
bonne continuation et courage, on se suit.
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(); } } }
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.
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 :
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 ?)
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
+ 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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager