Mot de passe

cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012 - 24 oct. 2009 à 12:12
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012 - 20 nov. 2009 à 19:23
Bonjours

Je joins dans mon projet un formulaire invitant l'utilisateur à introduire un mot de passe
et aussi de le modifier si besoin.

Mais la difficulte que j'ai trouvéé c'est lorsque l'utilisateur modifie le mot de passe;
au prochain demarrage du formulaire, le nouveau mot de passe n'est pas pris en compte, seulement
l'ancient.

Dois je stocker la valeur du mot de passe dans un fichier ou comment ?

Aidez moi svp, je programme en vb.net 2008

21 réponses

Marroubi Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 30 octobre 2009 2
27 oct. 2009 à 10:26
Bonjours tout le monde.

Alors, pour SupHerbesBibliotheque.Connexion, c'est une classe nommé Connexion au sein de la bibliothèque SupHerbesBibliotheque; la définition de la classe est :

Imports System.Data.OleDb
Public Class Connexion

    Private Shared _connexion As OleDbConnection

    Public Shared Sub Initialiser(ByVal path As String)
        _connexion = New OleDbConnection
        _connexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";"
    End Sub
    Public Shared Sub Open()
        If _connexion.State = ConnectionState.Closed Then
            _connexion.Open()
        End If
    End Sub
    Public Shared Function Connexion() As OleDbConnection
        Return _connexion
    End Function

End Class

Cette classe permet de créer un objet de type
OleDbConnection et l'initialiser via la procédure
Public Shared Sub Initialiser(ByVal path As String)
        _connexion = New OleDbConnection
        _connexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";"
    End Sub

Dont la variable d'entré path est le chemin propre de la base de données Acces .(l'initialisation sera dans le chargement de votre projet)
Après l'initialisation de la connexion tu peut bien sur travailler avec l'objet retourné par la méthode
  Public Shared Function Connexion() As OleDbConnection
        Return _connexion
    End Function

Comme un objet connexion comme dans les méthode de la classe Utilisateur:
Connexion.Open()

D'autre part, et si j'ai bien compris ta question tu veux savoir comment utiliser ces classes dans le code behind des formulaire de gestion d'utilisateurs?
bon, on prend ces exemples:
[*] Création d'un compte:
 Private Sub btnCreationCompte_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCreationCompte.Click
        If Me.txtNomCreation.Text = String.Empty Then
            Me.lblErreur.Text = "Nom est obligatoire"
            Exit Sub
        End If

        If Me.txtPrenomCreation.Text = String.Empty Then
           Me.lblErreur.Text = "Prénom est obligatoire"
            Exit Sub
        End If

        If Me.txtLoginCreation.Text = String.Empty Then
            Me.lblErreur.Text = "Login est obligatoire"
            Exit Sub
        End If

        If Me.txtMPCreation.Text = String.Empty Then
     Me.lblErreur.Text = "Mot de passe est obligatoire"
            Exit Sub
        End If

        If Me.txtConfirmationCreation.Text = String.Empty Then
           Me.lblErreur.Text = "La confirmation du mot de passe est obligatoire"
            Exit Sub
        End If
        If String.Compare(Me.txtMPCreation.Text, Me.txtConfirmationCreation.Text) <> 0 Then
            Me.lblErreur.Text = "La confirmation de mot de passe est incorrecte. Veuillez réessayer."
            Me.txtConfirmationCreation.Focus()
            Me.txtConfirmationCreation.SelectAll()
            Exit Sub
        End If
        If SupHerbesBibliotheque.Utilisateur.LoginExists(Me.txtLoginCreation.Text) Then
            Me.lblErreur.Text = "Ce login est déjà enregistré. Veuillez réessayer."
            Me.txtLoginCreation.Focus()
            Me.txtLoginCreation.SelectAll()
            Exit Sub
        End If

        If SupHerbesBibliotheque.Utilisateur.Inserer(Me.txtNomCreation.Text, Me.txtPrenomCreation.Text, Me.txtLoginCreation.Text, Me.txtMPCreation.Text) Then
            MessageBox.Show("Opération terminée avec succès ", SupHerbesBibliotheque.Divers.TitreMessage, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
            frmMidi.Enabled = True
            Me.Close()
        End If

    End Sub

[*] Pour la modification d'un compte:
 Private Sub btnModifierCompte_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifierCompte.Click
 SupHerbesBibliotheque.Utilisateur.Modifier(Me.txtNomModification.Text, Me.txtPrenomModification.Text, utilisateur.Login, Me.txtLoginModofication.Text, Me.txtNouveauMPModification.Text, Me.chkModifierMotPasse.Checked)

End Sub


n'hésiter pas de poser toute genre de question.
Bonne Casse-tête.
1
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
24 oct. 2009 à 12:46
Bonjour,

Dois je stocker la valeur du mot de passe dans un fichier ou comment ?


Evidemment ! Dans un fichier ou dans la base de registre ... Dans tous les cas : là où tu peux la retrouver, sur ton disque dur.

Nota : on prend généralement la protection suivante :
- un module de chiffrement irréversible ( dans ton code)
- on enregistre non le mot de passe, mais le résultat de ce module
- on utilise ce module sur le mot rentré en clair et on compare avec le "mot" chiffré enregistré (dans un fichier texte ou dans la base de registre.
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
26 oct. 2009 à 09:47
Bonjours

Merci pour ta reponse mais comment m'en prendre
avec ce que vous avez dit, il y a t il des tuto
pour ca, aidez moi svp

Merci
0
Marroubi Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 30 octobre 2009 2
26 oct. 2009 à 10:32
Salut tout le monde;
charrynsasi: tu peut chercher comment faire un Hashage de mot de passe en vb pour obtenir un procédure de cryptage et de décryptage de mot de passe pour bien gérer les utilisateurs de ton application.

d'autre part, pour ta question , si j'ai bien compris,
tu n'est pas obligé de stocker ou de sauvegarder les deux mots de passe lors de la modification !!
comment :
supposons que l'utilisateur actuellement connecté est U;
cet utilisateur a bien sur un mot de passe mp0, et un login l0 qu'est en principe son identifiant pour ton application, lorsque on veut modifier le mot de passe de cet utilisateur on doit faire une requête, un procédure , ou un mécanisme en générale dont le critère est que :
Login=l0;

j'ai un exemple de gestion d'utilisateur(application VB et BD MS Acces ), tu peut aussi trouver la notion de cryptage de mot de passe :

Imports System.Data
Imports System.Data.OleDb
Public Class Utilisateur


    Private _nom As String
    Private _prenom As String
    Private _login As String
    Private _motPasse As String

    Public Property Nom() As String
        Get
            Return Me._nom
        End Get
        Set(ByVal value As String)
            Me._nom = value
        End Set
    End Property
    Public Property Prenom() As String
        Get
            Return Me._prenom
        End Get
        Set(ByVal value As String)
            Me._prenom = value
        End Set
    End Property
    Public Property Login() As String
        Get
            Return Me._login
        End Get
        Set(ByVal value As String)
            Me._login = value
        End Set
    End Property
    Public Property MotPasse() As String
        Get
            Return Me._motPasse
        End Get
        Set(ByVal value As String)
            Me._motPasse = value
        End Set
    End Property

    Sub New(ByVal login As String, ByVal motPasse As String)
        SupHerbesBibliotheque.Connexion.Open()
        Dim querString As String

        querString = "SELECT * FROM UTILISATEURS WHERE [LOGIN]=? AND  [MOTPASSE]=?"

        Dim command As New OleDb.OleDbCommand(querString, SupHerbesBibliotheque.Connexion.Connexion)

        Dim parNom As New OleDb.OleDbParameter
        parNom.ParameterName = "LOGIN"
        parNom.OleDbType = OleDb.OleDbType.VarWChar
        parNom.Direction = ParameterDirection.Input
        parNom.Value = login
        command.Parameters.Add(parNom)

        Dim parMotPasse As New OleDb.OleDbParameter
        parMotPasse.ParameterName = "MOTPASSE"
        parMotPasse.OleDbType = OleDb.OleDbType.VarWChar
        parMotPasse.Direction = ParameterDirection.Input
        parMotPasse.Value = CrypterMotDePasse(motPasse)
        command.Parameters.Add(parMotPasse)

        Dim dr As OleDb.OleDbDataReader = command.ExecuteReader

        While dr.Read
            Me._nom = dr.GetValue(0)
            Me._prenom = dr.GetValue(1)
        End While

        Me._login = login
        Me._motPasse = motPasse

    End Sub

    Sub New()
    End Sub
    ''' <summary>
    ''' Permet de crypter le mot de passe.
    ''' </summary>
    ''' 


    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Shared Function CrypterMotDePasse(ByVal password As String) As String
        Dim encodedPassword As String = password
        Dim hash As Security.Cryptography.HMACSHA1 = New Security.Cryptography.HMACSHA1()
        hash.Key = New Byte() {12, 34, 1, 100, 99, 13, 33, 56, 93, 93, 7, 3, 77, 19, 12, 12, 98, 111, 25, 35} 'HexToByte(machineKey.ValidationKey)
        encodedPassword = Convert.ToBase64String(hash.ComputeHash(System.Text.Encoding.Unicode.GetBytes(password)))
        Return encodedPassword
    End Function
    ''' <summary>
    ''' Vérifie si le login est déjà existe.
    ''' </summary>
    ''' 


    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function LoginExists(ByVal login As String) As Boolean

        SupHerbesBibliotheque.Connexion.Open()
        Dim querString As String

        querString = "SELECT COUNT(*) FROM UTILISATEURS WHERE [LOGIN]=?"

        Dim command As New OleDb.OleDbCommand(querString, SupHerbesBibliotheque.Connexion.Connexion)

        Dim parNom As New OleDb.OleDbParameter
        parNom.ParameterName = "LOGIN"
        parNom.OleDbType = OleDb.OleDbType.VarWChar
        parNom.Direction = ParameterDirection.Input
        parNom.Value = login
        command.Parameters.Add(parNom)

        If command.ExecuteScalar() = 0 Then Return False Else Return True

    End Function

    Public Shared Function UtilisateurValide(ByVal login As String, ByVal motPasse As String) As Boolean

        SupHerbesBibliotheque.Connexion.Open()
        Dim querString As String

        querString = "SELECT COUNT(*) FROM UTILISATEURS WHERE [LOGIN]=? AND [MOTPASSE]=?"

        Dim command As New OleDb.OleDbCommand(querString, SupHerbesBibliotheque.Connexion.Connexion)

        Dim parNom As New OleDb.OleDbParameter
        parNom.ParameterName = "LOGIN"
        parNom.OleDbType = OleDb.OleDbType.VarWChar
        parNom.Direction = ParameterDirection.Input
        parNom.Value = login
        command.Parameters.Add(parNom)

        Dim parMotPasse As New OleDb.OleDbParameter
        parMotPasse.ParameterName = "MOTPASSE"
        parMotPasse.OleDbType = OleDb.OleDbType.VarWChar
        parMotPasse.Direction = ParameterDirection.Input
        parMotPasse.Value = CrypterMotDePasse(motPasse)
        command.Parameters.Add(parMotPasse)

        If command.ExecuteScalar() = 0 Then Return False Else Return True

    End Function
    Public Shared Function Inserer(ByVal nom As String, ByVal prenom As String, ByVal login As String, ByVal motpasse As String)

        Try
            SupHerbesBibliotheque.Connexion.Open()
            Dim querString As String

            querString = "INSERT INTO Utilisateurs([Nom], [Prenom], [Login], [MotPasse]) VALUES (?, ?, ?, ?)"

            Dim command As New OleDb.OleDbCommand(querString, SupHerbesBibliotheque.Connexion.Connexion)

            Dim parNom As New OleDb.OleDbParameter
            parNom.ParameterName = "Nom"
            parNom.OleDbType = OleDb.OleDbType.VarWChar
            parNom.Direction = ParameterDirection.Input
            parNom.Value = nom
            command.Parameters.Add(parNom)

            Dim parPrenom As New OleDb.OleDbParameter
            parPrenom.ParameterName = "Prenom"
            parPrenom.OleDbType = OleDb.OleDbType.VarWChar
            parPrenom.Direction = ParameterDirection.Input
            parPrenom.Value = prenom
            command.Parameters.Add(parPrenom)

            Dim parLogin As New OleDb.OleDbParameter
            parLogin.ParameterName = "Login"
            parLogin.OleDbType = OleDb.OleDbType.VarWChar
            parLogin.Direction = ParameterDirection.Input
            parLogin.Value = login
            command.Parameters.Add(parLogin)

            Dim parMotPasse As New OleDb.OleDbParameter
            parMotPasse.ParameterName = "MotPasse"
            parMotPasse.OleDbType = OleDb.OleDbType.VarWChar
            parMotPasse.Direction = ParameterDirection.Input
            parMotPasse.Value = CrypterMotDePasse(motpasse)
            command.Parameters.Add(parMotPasse)

            command.ExecuteNonQuery()
            Return True

        Catch ex As Exception
            Return False
        End Try

    End Function

    Public Shared Function Modifier(ByVal nom As String, ByVal prenom As String, ByVal ancienLogin As String, ByVal nouveauLogin As String, ByVal motPasse As String, ByVal motPasseModifier As Boolean)

        Try
            SupHerbesBibliotheque.Connexion.Open()
            Dim querString As String
            If motPasseModifier = True Then
                querString = "UPDATE UTILISATEURS   SET [Nom]=? , [Prenom]=?, [Login]=? , [MotPasse]=?   WHERE Login='" & ancienLogin & "'"
            Else
                querString = "UPDATE UTILISATEURS   SET [Nom]=? , [Prenom]=?, [Login]=?   WHERE Login='" & ancienLogin & "'"
            End If

            Dim command As New OleDb.OleDbCommand(querString, SupHerbesBibliotheque.Connexion.Connexion)

            Dim parNom As New OleDb.OleDbParameter
            parNom.ParameterName = "Nom"
            parNom.OleDbType = OleDb.OleDbType.VarWChar
            parNom.Direction = ParameterDirection.Input
            parNom.Value = nom
            command.Parameters.Add(parNom)

            Dim parPrenom As New OleDb.OleDbParameter
            parPrenom.ParameterName = "Prenom"
            parPrenom.OleDbType = OleDb.OleDbType.VarWChar
            parPrenom.Direction = ParameterDirection.Input
            parPrenom.Value = prenom
            command.Parameters.Add(parPrenom)

            Dim parNouveauLogin As New OleDb.OleDbParameter
            parNouveauLogin.ParameterName = "Login"
            parNouveauLogin.OleDbType = OleDb.OleDbType.VarWChar
            parNouveauLogin.Direction = ParameterDirection.Input
            parNouveauLogin.Value = nouveauLogin
            command.Parameters.Add(parNouveauLogin)

            If motPasseModifier = True Then
                Dim parMotPasse As New OleDb.OleDbParameter
                parMotPasse.ParameterName = "MotPasse"
                parMotPasse.OleDbType = OleDb.OleDbType.VarWChar
                parMotPasse.Direction = ParameterDirection.Input
                parMotPasse.Value = CrypterMotDePasse(motPasse)
                command.Parameters.Add(parMotPasse)
            End If

            command.ExecuteNonQuery()
            Return True

        Catch ex As Exception
            Return False
        End Try

    End Function
End Class



Bonne Casse-tête.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
26 oct. 2009 à 11:00
Bonjour, Marroubi,
Si tu le permets, je vais rectifier un peu ton affirmation :
Aucune procédure de "decryptage" n'est nécessaire, s'agissant d'un mot de passe.
Bien au contraire ! Il est dans ce cas conseillé dutiliser un chiffrement irréversible (de teller manière, donc, que même le concepteur du module de chiffrement serait incapable de retrouver, à l'aide du résultat chiffré, le mot clair ayant conduit à ce résultat.
Relis ce que j'ai dit d'un tel mécanisme.
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
27 oct. 2009 à 09:54
Bonjour Marroubi et merci pour ta reponse

la variable SupHerbesBibliotheque n'a pas ete declare, elle est souligne, où la declarer et comment.

supposons que j'ai deux formuaire , celui de l'intoduction du nom,prenom,login,mot de passe et celui de la modifcation
et je me sers du controle textbox pour recuperer les valeurs d'entree.

comment utiliser alors les membres de cette classe utilisateur .

Merci encore
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
27 oct. 2009 à 23:46
Merci Marroubi

je vais bien me casser la tete

je t'ecrirai quand il y a probleme , merci encore pour ta bonne foi

a plus
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
28 oct. 2009 à 00:38
Je viens de l'essayer, mais quand j'appui sur le bouton btnCreationCompte;il y a une exception qui souligne la ligne If _connexion.State = ConnectionState.Closed Then
dans la methode open de la classe connexion en disant : La référence d'objet n'est pas définie à une instance d'un objet

Qu'est ce qui se passe
0
Marroubi Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 30 octobre 2009 2
28 oct. 2009 à 09:51
Bonjour tout le monde,
C'est très normal, parce que l'objet connexion n'est pas encours initialiser,pour faire cela fait l'initialiser via la méthode Initialiser de la classe Connexion
Public Shared Sub Initialiser(ByVal path As String)
        _connexion = New OleDbConnection
        _connexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";"
    End Sub

dans le load de la fenêtre principale de ton projet.

 Private Sub frmMidi_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ''Initialiser la connexion.
        SupHerbesBibliotheque.Connexion.Initialiser("CheminDeTaBaseDeDonnees")
    End Sub


Attention:tu doit passer le chemin soit relatif ou absolu de ta base de données correctement, si non tu aura une erreur d'accès.

Bonne Casse-tête.
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
28 oct. 2009 à 15:45
Bonjours Marroubi

Comment doit etre la structure de cette base ,
table, attribut,cle primaire, etc...

Merci
0
Marroubi Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 30 octobre 2009 2
28 oct. 2009 à 16:02
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
29 oct. 2009 à 15:36
Bonjours Marroubi

Comment doit etre alors la structure de cette base de donnees( table, propriete,cle primaire, etc.)

Merci
0
Marroubi Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 30 octobre 2009 2
29 oct. 2009 à 15:58
Bonjour,

La question était comment gérer les utilisateurs d'une application, n'est ce pas?
Alors,on a définie la structure de table Utilisateurs qui sera intégrer dans ta base de données, et on a aussi définie la classe utilisateur avec ses méthodes et ces propriétés.

Comment doit etre alors la structure de cette base de donnees


quelle base de données !!
la base de données de ton projet?
si oui, je vais te dire tout simplement je sais pas !!

Bonne Casse-Tête.
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
30 oct. 2009 à 16:14
Bonjour Marroubi

Excusez moi d'avoir ecrit deux fois le meme message,

J'ai fait ce que vous m'avez dit mais jettez un peu un coup d'oeil dans cette capture pour voir l'erreur que ca donne :

http://www.hiboox.fr/go/images/informatique/error,f8f2230ce1ec84154f3a92422ab72610.bmp.html

Merci
0
Marroubi Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 30 octobre 2009 2
30 oct. 2009 à 16:22
Bonsoir,

pas de problème.

Alors, dans la configuration de la chaine de connexion on a utilise le provider Microsoft.Jet.OLEDB.4.0
Alors on précisé d 'utiliser une base de données access et pas SQL.

donc tu doit traivailler avec une base de données Access dont l'extension est .mdb, c'est pourquoi lors de l'ouverture de la connexion est normale d'avoir ce message d'erreur.

Bonne Casse-Tête.
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
4 nov. 2009 à 15:51
Bonjour Marroubi

Merci , tout fonctionne à merveille mais seulement j'ai 3 questions:

1. Lors de la publication de mon projet et que ce fichier de BD access est deplace de son emplacement
defini dans ConnectionString ,qu'est se passsera ?
2. Il y a t il moyen d'inclure ce fichier de BD access au sein du projet
3. Dans la procedure de modification, le compilateur souligne Utilisateur.Login et
il dit que l'objet doit etre instancie et que login n'est pas un membre partage ,comment
instancier l'objet utilisateur ? Avec new bien sur mais comment avec le parametre de ce new ?

Merci
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
6 nov. 2009 à 09:21
Bonjour Marroubi

Pour terminer, voici j'ai cree 2 formulaire, celui de creation, de modification
et je voulais creer un formulaire que l'utilisateur valide va se connecter,
pour ce, comment implementer la methode utilisateurvalide ?

Merci
0
Marroubi Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 30 octobre 2009 2
9 nov. 2009 à 09:57
Bonjour,

Désolé pour ce retard à vous répondre,
bon, voila la definition de la méthode UtilisateurValide dans la classe Utilisateur vous est offert avec le code précédement envoyé!:

    Public Shared Function UtilisateurValide(ByVal login As String, ByVal motPasse As String) As Boolean

        SupHerbesBibliotheque.Connexion.Open()
        Dim querString As String

        querString = "SELECT COUNT(*) FROM UTILISATEURS WHERE [LOGIN]=? AND [MOTPASSE]=?"

        Dim command As New OleDb.OleDbCommand(querString, SupHerbesBibliotheque.Connexion.Connexion)

        Dim parNom As New OleDb.OleDbParameter
        parNom.ParameterName = "LOGIN"
        parNom.OleDbType = OleDb.OleDbType.VarWChar
        parNom.Direction = ParameterDirection.Input
        parNom.Value = login
        command.Parameters.Add(parNom)

        Dim parMotPasse As New OleDb.OleDbParameter
        parMotPasse.ParameterName = "MOTPASSE"
        parMotPasse.OleDbType = OleDb.OleDbType.VarWChar
        parMotPasse.Direction = ParameterDirection.Input
        parMotPasse.Value = CrypterMotDePasse(motPasse)
        command.Parameters.Add(parMotPasse)

        If command.ExecuteScalar() = 0 Then Return False Else Return True

    End Function


alors, cette fonction prend comme paramètre le login et le mp d'un utilisateur, et elle retourne une valeur boolean(true ou false), true (ou vrais) s'il y a d'utilisateur qui a comme login et comme mp les valeurs passées en paramètre, et elle renvoi false(ou faux) dans le cas contraire( si aucun utilisateur trouvé par ces valeurs passées en paramètre).

Alors, l'utilisation de cette fonction ca sera comme suite:

dans la fenêtre de connexion (par laquelle les utilisateurs peuvent accéder à votre application)précisément au dessous de la bouton "Se Connecter" vous mettez ce morceau de code:


If SupHerbesBibliotheque.Utilisateur.UtilisateurValide(Me.txtLoginCreation.Text, Me.txtMPCreation.Text) Then
             'Traitement lorsque les informations sont correctes, il existe un utilisateur avec ces informations dans notre table des utilisateurs dans la base de données.
'Vous pouvez mettre par exemple :
                Me.Close()
Else
'S'il n y a pas d'utilisateurs avec ces informations
'Vous pouvez mettre par exemple :
Me.lblErreur.Text = "Le login ou le mot de passe est incorrect. Veuillez réessayer."
End If
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
10 nov. 2009 à 11:09
Bonjour Marroubi

J'ai 2 dernieres preoccupations:

1. Le code de l'evenement click du bouton Modifier ne fonctionne pas, il signale une erreur
d'instenciation avec le mot clef new de l'objet utilisateur:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Utilisateur.Modifier(Utilisateur.Login, Me.txtLoginModofication.Text, Me.txtNouveauMPModification.Text) Then
MessageBox.Show("modification terminée avec succès ", "modification terminée avec succès ", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
End If
End Sub

2. Il n'y a pas moyen que je puisse joindre cette base de donnee ds mon application
de telle maniere que lors de la publication de mon projet cette base de donne puisse
etre inclut au sein de mon projet au lieu qu'il soit toujours loge dans mes documents.

Merci
0
Marroubi Messages postés 51 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 30 octobre 2009 2
10 nov. 2009 à 16:37
Bonjour,

Alors, tu doit bien concentré avec moi !!!

Dans la formulaire de connexion, dans le bouton "Se Connecter" , dans le bloque de dont les infos saisies sont correctes, met ce code

 If Utilisateur.UtilisateurValide(Me.txtLoginCreation.Text, Me.txtMPCreation.Text) Then
 frmMidi.UtilisateurCourant = New Utilisateur(Me.txtLoginCreation.Text, Me.txtMPCreation.Text)
 Me.Close()


dont :
frmMidi : est le principale formulaire de votre application.
frmMidi.UtilisateurCourant : est l'utilisateur courant, qu'est en ligne.
donc tu doit ajouter un propriété dans la classe frmMidi.vb comme suite:

    Private _utilisateurCourant As New Utilisateur

    Public Property UtilisateurCourant() As Utilisateur
        Get
            Return Me._utilisateurCourant
        End Get
        Set(ByVal value As Utilisateur)
            Me._utilisateurCourant = value
        End Set
    End Property


Donc après chaque connexion, tu as récupéré l'utilisateur courant dans la propriété UtilisateurCourant de la forme principale.

Alors , lorsqu'on met
 frmMidi.UtilisateurCourant
, on parle de l'utilisateur en ligne. Ok??

Dans la fenêtre de la modification, le bouton Modifier tu met ce code:

Utilisateur.Modifier(Me.txtNomModification.Text, Me.txtPrenomModification.Text, utilisateur.Login, Me.txtLoginModofication.Text, Me.txtNouveauMPModification.Text, Me.chkModifierMotPasse.Checked)


Je crois que c'est claire !!

Pour ta deuxième question :

Pour que ta base de données sera publiée avec ton projet :

Clique droite sur ton projet, Ajouter , puis sélectionner "Éléments Existants". à partir de la fenêtre apparaît chercher et sélectionner ta base de données, puis tu ouvre le dossier de l'application dans le disque pour savoir le chemin relative de la base de données !!
Comment??
Supposons qu'on a ajouter la BD dans le Dossier bin de notre application , le path ou le chemin qu'on définie pour la chaine de connexion dans la classe connexion sera:
(AppDomain.CurrentDomain.SetupInformation.ApplicationBase & "\NomDeLaBaseAcces.mdb")


Donc l'initialisation de la chaine de connexion sera comme suite:

Connexion.Initialiser(AppDomain.CurrentDomain.SetupInformation.ApplicationBase & "\NomDeLaBaseAcces.mdb")
0
Rejoignez-nous