Compte + base de données

Résolu
Signaler
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
-
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
-
Bonjour à tous,

J'ai
une table Personne dans mon sgbd Sql Server avec deux colonnne "Login"
et "Mot de passe", et j'ai un logiciel dans lequel on demande le login
et le mot de passe de la personne qui veut se connecter et donc si il
rentre :

Login : "jean"

Mot de passe : "jacques"

Je verifi dans la table Personne si le couple "Jean" et "Jacques" sont présent et si oui je lance le logiciel.

Ce
que je voudrais en faite c'est d'empecher à un utilisateur de se loguer
sur un compte si une autre utilisateur est loguer sur ce même compte et
de mettre un message genre : "Vous ne pouvez pas vous loguer sur ce
compte car un utilisateur s'y trouve déja".

Comment feriez vous ? Y'a t'il un moyen de faire ca avec sql server avec les contraintes d'integrité ?

Par avance, merci.

7 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
Salut,

Soit tu ajoutes un champ supplémentaire dans la case personne.
Exemple le champ logon de type boolean(bit).
Quand la personne ce log, le bit change.
Quand l'autre personne ce connecte, lors de la recherche de la personne dans la table il suffit de rajouter la valeut de ce champ.

lors que la personne ce délogue alors le bit change.

Un problème est que si la personne kill l'application, brusquement le bit peux resté bloqué. Donc il faut un outil d'admin pour remettre les bit a false.

Un autre point, évite de stocker en dur les mot de passe, il faut utiliser les
api de crypto (exemple un md5), et regarder si

md5(motdepassesaisi) = md5 stockée.

La méthode empeche d'utiliser une table supplémentaire avec une gestion des contrainte d'intégrité.
Et la gestion de l'unicité levant une exception, est aun niveau perf mauvais.

Moins on utilise les exceptions, mieux c'est.

Bon courage
Voila
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
Salut,

Je ne pense pas, ce n'est pas le but de sqlserver.
Les différents langage y arrive apres il faut chercher sur codes sources les classes et méthodes qui fonctionne bien.

Ton système a l'air correct, mais il est peut etre moins performant que ce que je proposait car des bit sont plus rapides que des chaines de caracteres.
Mais la fonctionnalité marchera mieux.

Voila

Amuses toi bien
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Moi je pensais faire dans ma table Personne un champ
chaine_identifiante dans laquelle je concatene le nom du pc + le nom de
la session, exemple " monpc/nomdemasession" et que j'insere dans la
table Personne au moment ou il se connecte sur un compte.Et ce champs
je le remet à blanc une fois que la personne se deconnecte du logiciel.
La règle est donc : une personne peut se loguer sur un compte sur le
champs "chaine_identifiante" correspondant correspond à sa propre
chaine de connexion ou bien si "chaine_identifiante" est vide.
Ainsi même si l'appli est quitté à la barbare, la personne pourra tjs se connecter dessus.

exemple :

jean se connecte :

login | mp | chaine_identifiante
jean paul pcdejean/sessionjean

jean se deconnecte

login | mp | chaine_identifiante
jean paul

qu'en penses tu ?

En faite ca rejoint ton idée, en effet il peut y avoir un blocage si l'appli est quitté de manière non conventionelle. C'est vrai que pour les mot de passes je les ecris sans les cacher dans la base est ce que sql server contient qq chose qui me permet de les crypters automatiquement ?
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Ben je pensais faire avec un boolean au debut, mais mon système permet à celui qui a quitté l'appli de manière non conventionelle de pouvoir se reconnecter. Maintenant question rapidité les bits sont sans doute plus rapide. Après c'est une question de choix entre les deux méthodes.
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Je ne peux pas valider ta réponse car il a un problème avec la validation ou alors c'est mon navigateur qui marche plus très bien
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
Il y a pour moi aussi, eu le cas des réponses que je ne pouvais pas postée.
Et de message non signalé dans la boite aux lettres.

Peux-etre du aux changement de serveur et de base de données ;-)

Maintenant j'ai à poster
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
pour valider il faut rentrer qq chose dans la zone de saisie d'après ce qu'on m'a dit, enfin faut faire comme ca pour le moment