Session avec base de données

cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 15 févr. 2006 à 17:43
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 16 févr. 2006 à 10:01
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 ?

Par avance, merci.

3 réponses

Tonkadan Messages postés 8 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 15 février 2006
15 févr. 2006 à 19:50
Peut-être pas la méthode la plus optimisée mais elle fonctionne

Dans ton formulaire de login, déclaure une variable public de type arrayList:

public static ArrayList arLogged = new ArrayList();

Dans ton formulaire de Login, lorsque l'utilisateur clique sur "Ok":

private void butOk_Click(object sender, System.EventArgs e)
{
bool okLogin = true; //variable pour tester si tout est OK

foreach(string strEmp in frmLogin.arLogged) //Iterer à travers ton tableau d'utilisateurs connectés
{
if (strEmp = = txLogin.Text) //Tester si déja connecté
{
//ton message d'erreur
okLogin = false; // Affecter false à okLogin
}
}

if (okLogin) //si okLogin = true (utilisateur pas connecté)

{

Classes.Configs.arLogged.Add(Empl.Login); //ajouter à ton tableau d'utilisateurs

// ta procédure de connection normale..

}

}

Maintenant, dans ta procédure de déconnection:

private void butDeconnect_Click(object sender, System.EventArgs e)
{
Login.arLogged.Remove(Empl.Login); //Ici, change Emp.Login par le Login de ton utilisateur connecté.. je ne sait
// pas comment tu le garde, moi il est dans une variable Employee (Empl)
}
0
Tonkadan Messages postés 8 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 15 février 2006
15 févr. 2006 à 20:09
Oupss.. je viens de relire ton message et je crois que ce n'est pas ce que tu cherche. Tu parle d'une application qui roule sur plusieurs postes... Juste à te créer une table "Logged" avec un champ "LOGIN" qui stocke le login des utilisateur connectés. Dans ta procédure de connection, quand tu va vérifier si la paire Login/password existe dans ta table "personne" mets une clause where dans ta commande SQL dans le genre WHERE LOGIN NOT IN (SELECT * FROM Logged)

Dans ta procédure de déconnection, va enlever l'entrée dans ta table "Logged".
N'oublie pas aussi dans la procédure de fermeture de l'application d'aller l'enlever sinon les utilisateurs qui auront fermé l'application (avec alt+f4 ou en cliquant sur le X en haut à droite) resteront dans la BD.
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
16 févr. 2006 à 10:01
Ca rejoint en faite ce que je pensais faire au depart, que penses tu de ceci :

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 ?
0
Rejoignez-nous