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 :

login en c# avec connection a une base de données ssl serveur [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut login en c# avec connection a une base de données ssl serveur
    Bonjour, ma question est la suivant j'aimerai créer une page de login qui vérifie les information saisie dans le textbox dans une base de donnée sql serveur et ensuite redirige l'utilisateur vers une page en fonction de son nom d'utilisateur.
    mais j'y arrive pas si quelqu'un aurai une solution.
    merci d'avance

    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
    connection = new SqlConnection("Data Source=mabase;Initial Catalog=BDD;User ID=sa;Password=password");
                query = (" SELECT Nom, Password FROM [marine_utilisateur] WHERE Nom='"+TextBoxNom.Text+"'AND Password= '"+TextBoxPassword.Text+ "'");
                command = new SqlCommand(query, connection);
                connection.Open();
                reader = command.ExecuteReader();
                string pass, user;
                user = TextBoxNom.Text;
                pass = TextBoxPassword.Text;
                while (reader.Read())
                {
                    if (reader["Nom"].ToString() != TextBoxNom.Text && reader["Password"].ToString() != TextBoxPassword.Text)
                    {
                        Label1.Text = "Nom utilisateur ou mot de passe invalide";
                    }
     
     
                    else
                    {
                        if (reader["Nom"].ToString() == "admin" && reader["Password"].ToString() == "******")
     
                            Response.Redirect("~/PageAdmin.aspx");
                        else
                        {
                            if (reader["Nom"].ToString() == TextBoxNom.Text && reader["Password"].ToString() == TextBoxPassword.Text)
                            {
                                Response.Redirect("~/Default.aspx");
                            }
     
                        }
                    }
     
                }
                connection.Close();

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Juste un truc un peu bizarre, tu fais une requête sur nom et password, puis tu regardes si le résultat renvoyé est bien ce user et password. C'est inutile, regarde plutôt si le résultat de la requête est vide.

  3. #3
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Et pis si on peut éviter les injections c'est mieux...
    Passe par des requêtes paramétrées c'est plus sûr !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Citation Envoyé par GuruuMeditation Voir le message
    Juste un truc un peu bizarre, tu fais une requête sur nom et password, puis tu regardes si le résultat renvoyé est bien ce user et password. C'est inutile, regarde plutôt si le résultat de la requête est vide.
    Merci d'avoir répondu
    je suis débutant en programmation donc j'ai pas compris comment vérifier si la requête est vide du moins la marche a suivre
    et merci pour le liens je vais un peu m'instruire =)

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Et si dans UserName je saisis :

    X' or 1=1 or Nom=
    Puis dans password je saisis :

    or 1 = 1 or Nom='X
    Il se passe quoi ?

    Ou encore, dans password :

    '; delete [marine_utilisateur];
    La réponse devrait t'inciter à chercher une autre solution ....(cf. la réponse de Erw3nsur les requêtes paramétrées).

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    je pense avoir compris après avoir lus le tuto sur les requêtes paramétré je vais régler ça de suite.
    j'aurai juste voulus savoir quel aurait été la meilleur méthode pour interroger ma base de données
    je veux dire une sorte de boucle qui vérifie les informations dans la bases et log l'utilisateur en fonction du nom saisie

  7. #7
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Citation Envoyé par eseuk Voir le message
    je pense avoir compris après avoir lus le tuto sur les requêtes paramétré je vais régler ça de suite.
    j'aurai juste voulus savoir quel aurait été la meilleur méthode pour interroger ma base de données
    je veux dire une sorte de boucle qui vérifie les informations dans la bases et log l'utilisateur en fonction du nom saisie
    Il n'y a pas besoin de boucle.

    Le mieux aurait été d'utiliser une procédure stockée en lui passant tes paramètres. Dans cette procédure stockée, tu fais une requête sur ta table d'utilisateurs. Si ta procédure ne te renvoie pas de résultat, c'est que les identifiants spécifiés sont incorrects.

    Il y à pléthore de tutoriels qui traitent du sujet

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par eseuk Voir le message
    je pense avoir compris après avoir lus le tuto sur les requêtes paramétré je vais régler ça de suite.
    j'aurai juste voulus savoir quel aurait été la meilleur méthode pour interroger ma base de données
    je veux dire une sorte de boucle qui vérifie les informations dans la bases et log l'utilisateur en fonction du nom saisie
    Comme dit, pas beson de boucle : tu veux juste vérfier que les données existent !

    Tu peux faire quelque chose comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SqlConnection connection = new SqlConnection("Data Source=mabase;Initial Catalog=BDD;User ID=sa;Password=password");
    string query = " SELECT count(*) FROM [marine_utilisateur] WHERE Nom=@nom AND Password= @password";
    SqlCommand command = new SqlCommand(query, connection);
    command.Parameters.Add("@nom", TextBoxNom.Text);
    command.Parameters.Add("@password", TextBoxPassword.Tex);
    connection.Open();
    int result = (int)command.ExecuteScalar();
    if(result > 0)
    {
    	// contriole user/mot de passe OK
    }
    connection.Close();

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Merci d'avoir répondu et vos réponse m'ont permis de résoudre mon problème

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

Discussions similaires

  1. connection d'une base de données sur oracle XE avec une application dévéloppée sur oracle forms
    Par nouhatahfouna dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 29/03/2010, 22h17
  2. Connection a une base de données avec DE
    Par mazquindz dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 08/07/2009, 10h27
  3. Réponses: 2
    Dernier message: 26/06/2007, 16h23
  4. Probleme de connection a une base de donnée avec odbc
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/08/2006, 23h25

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