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

ASP.NET Discussion :

Problem Session et authentification


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut Problem Session et authentification
    Bonjour tout le monde,

    je suis entrain de faire un stage avec une société le thème c'est " Gestion des congés" , bon au fait on m 'a exigé de travaillé avec ASP.NET/C# et Oracle9i comme base de donné .( ce qui m'a privé d'utiliser les authentification de .NET)

    Aujourd'hui je viens d'apercevoir que j'ai fais une grave erreur , j'ai fais une authentification avec les variables de session , ce qui fait a chaque connexion d'un nouveau utilisateur avec login et mot de passe correcte , il y a écrasement des variable lié a l'utilisateur déjà authentifié ...

    voila un aperçu dans la page d'accueil après 'authentification réussite:

    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
     
     if (reader.Read()) // Ici si le mot de passe et le login sont correcte
            {   
                WebMsgBox.Show(reader["id_qualification"].ToString());
                //WebMsgBox.Show(reader["password"].ToString());
                //if(reader["password"].ToString().CompareTo(Login1.Password.ToString())==0)
                WebMsgBox.Show("Bienvenue "+reader["prenom"]);
                Session.Add("prenom", reader["prenom"]);
                Session.Add("nom", reader["nom"]);
                Session.Add("dateembauche", reader["dateembauche"]);
                Session.Add("soldeconge", reader["soldeconge"]);
                Session.Add("solderecuperation", reader["solderecuperation"]);
                Session.Add("id_qualification", reader["id_qualification"]);
                Session.Add("matricule", reader["matricule"]);
                Session.Add("id_equipe",reader["id_equipe"]);
                Session["login"]=reader["login"] ;
                Session["CIN"] = reader["CIN"];
                Session["droit"] = reader["droit"];
                HttpContext.Current.Response.Redirect("accueil.aspx");
     
            }//ici si la connexion a échoué 
            else { WebMsgBox.Show("Veuillez entrer un login et un password valides !!!"); }
    Donc le problème comme vous le voyez a chaque connexion d'un nouveau utilisateur tout ces variables Session s'écrase avec les nouveaux paramétrés du dernier connecté ???

    donc j'ai fais un serveur qui n'accepte de communiquer qu'avec un seul client ...
    Vraiment j'ai besoin de votre aide , pour m'aider a trouver la solution a ce problème , je ai plus beaucoup de temps devant moi et mon stage touche a sa fin ...

    si y a des tutroial qui peuvent m'aider ou des conseills n'hesitez pas a me les proposer

    Merci bien .

  2. #2
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Par défaut
    La session est stockée côté client (par défaut dans des cookies), donc si plusieurs utilisateurs se connectent en même, cela ne devrait pas poser de problème.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Algueron Voir le message
    La session est stockée côté client (par défaut dans des cookies)
    Non, seul l'identifiant de session est stocké dans le cookie (et encore, pas forcément, ça peut être dans l'URL). Les données de la session sont stockées côté serveur.

    Citation Envoyé par mehdi_scofield Voir le message
    Donc le problème comme vous le voyez a chaque connexion d'un nouveau utilisateur tout ces variables Session s'écrase avec les nouveaux paramétrés du dernier connecté ???

    donc j'ai fais un serveur qui n'accepte de communiquer qu'avec un seul client ...
    Une session est liée à un client donné, il y a donc une session par client connecté. Donc rassure-toi, tu n'écrases pas les données de l'utilisateur précédent, les données des différents utilisateurs sont stockées séparément...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Non, seul l'identifiant de session est stocké dans le cookie (et encore, pas forcément, ça peut être dans l'URL). Les données de la session sont stockées côté serveur.



    Une session est liée à un client donné, il y a donc une session par client connecté. Donc rassure-toi, tu n'écrases pas les données de l'utilisateur précédent, les données des différents utilisateurs sont stockées séparément...


    Salut , j'ai essayer de me connecter de la meme machine meme navigateur , sur 2 onglets le premier je me connecte avec un utilisateur sur l'autre avec un deuxieme mais en me connectant avec le 2 eme utilisateur , quand je fais un refresh sur l'onglet du premier je ne trouve plus les donnés du premieres mais par contre je trouve les donnés du deuxieme ( le denier connecté ...) c est pour sa que j'ai posté ce sujet , la je suis entrain de chercher du coté du msdn pour voir comment faire l' authenticate voila un lien

    http://msdn.microsoft.com/fr-fr/libr...henticate.aspx



    Vraiment c'est le galere il me faut presque refaire tout le travaille ...

    Si y a de la bonne doc pour sa , merci de me la fournir je me documenterai bien pour et que sa me sera comme une lesson pour ne plus attacker quelque chose sans bien me documenter pour sa ...


    Merci

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C'est normal : puisque tu utilises le même navigateur, le serveur considère qu'il ne s'agit que d'un client (parce que tes 2 onglets partagent le même cookie)
    Pour tester de façon plus pertinente, utilise 2 navigateurs différents (genre Firefox et IE, pas 2 IE ou 2 FF !)
    Ou alors teste à partir de 2 machines distinctes

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut
    Citation Envoyé par tomlev Voir le message
    C'est normal : puisque tu utilises le même navigateur, le serveur considère qu'il ne s'agit que d'un client (parce que tes 2 onglets partagent le même cookie)
    Pour tester de façon plus pertinente, utilise 2 navigateurs différents (genre Firefox et IE, pas 2 IE ou 2 FF !)
    Ou alors teste à partir de 2 machines distinctes
    Merci bien pour votre répense,
    j'ai cru qu 'en utilisant plusieurs onglets y a une nouvelles connexion ==> nouvelle session , j'ai essayé ce que vous m'avez dites et vous avez raison .

    Merci bien euuuh avez vous une idé comment faire l'escape avec C# , j'ai une chaine de caractére qui contient le caractére ' elle m'a férmé la requette merci.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par mehdi_scofield Voir le message
    avez vous une idé comment faire l'escape avec C# , j'ai une chaine de caractére qui contient le caractére ' elle m'a férmé la requette merci.
    2 méthodes :
    - la mauvaise : "doubler" les quotes (') avec la méthode Replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s = s.Replace("'", "''");
    - la bonne : utiliser des requêtes paramétrées, comme expliqué ici :
    http://johannblais.developpez.com/tu...s-donnees/#LIV

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut
    Citation Envoyé par tomlev Voir le message
    2 méthodes :
    - la mauvaise : "doubler" les quotes (') avec la méthode Replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s = s.Replace("'", "''");
    - la bonne : utiliser des requêtes paramétrées, comme expliqué ici :
    http://johannblais.developpez.com/tu...s-donnees/#LIV

    Salut j'ai vu qu 'on utilisait System.Data.SqlClient dans le tutorial , sachant que ma base est en Oracle9i y'a t il pas des tutos pour sa ? j'ai vu qu'il y a le ADO.NET un peu interessant qu est ce que vous me conseillez d'utiliser ?!

    Merci beaucoup pour votre aide .

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    L'architecture ADO.NET est telle que tu n'as quasiment rien à changer pour passer de SqlServer à Oracle. En résumé, tu remplaces SqlConnection par OracleConnection, SqlCommand par OracleCommand, etc...
    On peut même aller plus loin en faisant totalement abstraction du SGBD utilisé. A ce sujet, tu peux lire le début du tuto que je t'ai indiqué, il parle de la couche d'abstraction d'ADO.NET

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut
    Citation Envoyé par tomlev Voir le message
    L'architecture ADO.NET est telle que tu n'as quasiment rien à changer pour passer de SqlServer à Oracle. En résumé, tu remplaces SqlConnection par OracleConnection, SqlCommand par OracleCommand, etc...
    On peut même aller plus loin en faisant totalement abstraction du SGBD utilisé. A ce sujet, tu peux lire le début du tuto que je t'ai indiqué, il parle de la couche d'abstraction d'ADO.NET
    Vraiment merci bien pour votre aide , j'ai commencé a lire ce tutorial c'est tres bien , j'aurais du le lire avant d'entamer mon projet de stage.

    la je dois tout reformuler ...

    a part sa est ce que vous avez une idée comment faire une classe model pour organisé mes requettes ( transformer les tables en classe avec tout les fonctions select, insert , update ....)

    Une autre petite question , la programmation en ASP/C# me semble comme une programmation événementiel j'ai pas pu faire le Orienté Objet dans ce projet , est ce que c est une bonne repense si on me demande "Pour quoi n'as tu pas utilisé le Orienté Objet dans ce projet ??!"

    Merci bien

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut
    tomlev Bonjour ,

    je sais que c'est pas l'endroit approprié pour sa , mais j'ai voulu te poser une derniere question , est ce que je peux faire plusieurs requettes sur une meme connection ?

    dans le projet que j'ai y avait un binome stagiaire avec moi ( qui m'a laissé tout seul) en faite a chauqe requette il ouvrait une nouvelle connection et une nouvelle commande le code est ambigue et sa reseemble un peu a sa oracon1,oracon2....oraconPLUS l'infinie ainsi que pour oracmdX x € [1...+°°]

    Donc merci de m'éclairer sur ce sujet , et a bientot .


  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par mehdi_scofield Voir le message
    a part sa est ce que vous avez une idée comment faire une classe model pour organisé mes requettes ( transformer les tables en classe avec tout les fonctions select, insert , update ....)
    Ca s'appelle un ORM (Object/relational mapping). Il en existe pas mal, les plus connus sont :
    - NHibernate (portage en .NET de l'ORM Hibernate de Java).
    - Linq To SQL (fonctionne seulement avec SQL Server et nécessite le .NET framework 3.5)
    - Entity Framework : peut théoriquement marcher avec n'importe quelle Bdd à condition d'avoir un provider ADO.NET qui le supporte (ce n'est pas encore le cas pour Oracle...). Nécessite le .NET framework 3.5 SP1

    Citation Envoyé par mehdi_scofield Voir le message
    Une autre petite question , la programmation en ASP/C# me semble comme une programmation événementiel j'ai pas pu faire le Orienté Objet dans ce projet , est ce que c est une bonne repense si on me demande "Pour quoi n'as tu pas utilisé le Orienté Objet dans ce projet ??!"
    .NET est une plate-forme 100% orientée objet, donc tu as forcément fait de l'objet... (par exemple, chaque page ASP.NET est une classe, ADO.NET s'utilise via des classes, etc...)

    Citation Envoyé par mehdi_scofield Voir le message
    est ce que je peux faire plusieurs requettes sur une meme connection ?
    Tu peux faire plusieurs requêtes sur la même connexion, mais il faut une nouvelle commande pour chaque requête.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut
    Ca s'appelle un ORM (Object/relational mapping). Il en existe pas mal, les plus connus sont :
    - NHibernate (portage en .NET de l'ORM Hibernate de Java).
    - Linq To SQL (fonctionne seulement avec SQL Server et nécessite le .NET framework 3.5)
    - Entity Framework : peut théoriquement marcher avec n'importe quelle Bdd à condition d'avoir un provider ADO.NET qui le supporte (ce n'est pas encore le cas pour Oracle...). Nécessite le .NET framework 3.5 SP1
    Est ce que le Hibernate de existe pour .NET ? NHibernate ??

    Vraiment sa sera une bonne occasion de toucher a sa ... je comprendrai le principe une fois pour toutes pour java aussi ...( J'ai terminé mes études et a chaque entretient on me demande si je maitrise le hibernate le spring ou le struts il s'intéresse même pas au Zend framework avec lequel j'ai fais mon PFE concept MVC)

    Vraiment la discussion a était tres enrichissante j'apprécie beaucoup la discussion avec vous, j'aimerai bien qu'on s'échange un peu les idées tout les jours.

    Merci beaucoup.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut
    Citation:
    Envoyé par mehdi_scofield Voir le message
    a part sa est ce que vous avez une idée comment faire une classe model pour organisé mes requettes ( transformer les tables en classe avec tout les fonctions select, insert , update ....)
    Ca s'appelle un ORM (Object/relational mapping). Il en existe pas mal, les plus connus sont :
    - NHibernate (portage en .NET de l'ORM Hibernate de Java).
    - Linq To SQL (fonctionne seulement avec SQL Server et nécessite le .NET framework 3.5)
    - Entity Framework : peut théoriquement marcher avec n'importe quelle Bdd à condition d'avoir un provider ADO.NET qui le supporte (ce n'est pas encore le cas pour Oracle...). Nécessite le .NET framework 3.5 SP1

    Citation:
    Envoyé par mehdi_scofield Voir le message
    Une autre petite question , la programmation en ASP/C# me semble comme une programmation événementiel j'ai pas pu faire le Orienté Objet dans ce projet , est ce que c est une bonne repense si on me demande "Pour quoi n'as tu pas utilisé le Orienté Objet dans ce projet ??!"
    .NET est une plate-forme 100% orientée objet, donc tu as forcément fait de l'objet... (par exemple, chaque page ASP.NET est une classe, ADO.NET s'utilise via des classes, etc...)

    Citation:
    Envoyé par mehdi_scofield Voir le message
    est ce que je peux faire plusieurs requettes sur une meme connection ?
    Tu peux faire plusieurs requêtes sur la même connexion, mais il faut une nouvelle commande pour chaque requête.

    Bonjour ,
    bon en faite j'ai deux questions sur deux choses , et MERCI
    1- est ce que on peut rendre notre application ou/site web ou autre, robuste et efficace en la protégeant par les validators contre les sql injection ??!!!

    2- A quoi sert le Cristal report?, selon son nom me vient l'esprit l'idée qu'il sert a la traçabilité , ou a générer des rapport ou log pour les incidents et problems , donc si possible veuillez m'eclaircir un peu plus sur ça sachant que j'ai fais des recherches sur google mais y a que des questions téchniques y a pas de definition pour sa...

    MERCI ...

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par mehdi_scofield Voir le message
    Est ce que le Hibernate de existe pour .NET ? NHibernate ??
    Oui, c'est ce que je disais... NHibernate est la version .NET de Hibernate

    Citation Envoyé par mehdi_scofield Voir le message
    1- est ce que on peut rendre notre application ou/site web ou autre, robuste et efficace en la protégeant par les validators contre les sql injection ??!!!
    Si tu utilises un ORM comme NHibernate, il n'y a pas de risques d'injection SQL car ça utilise des requêtes paramétrées.

    Citation Envoyé par mehdi_scofield Voir le message
    2- A quoi sert le Cristal report?
    A générer des rapports. Mais je ne l'ai jamais utilisé, donc je ne peux pas t'en dire plus...

  16. #16
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Y a un truc qui me chiffonne dans ton code: tu es sûr que tes variables de session existent toujours sur accueil.aspx?

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Y a un truc qui me chiffonne dans ton code: tu es sûr que tes variables de session existent toujours sur accueil.aspx?
    Bonjour ,

    Ouai les variables de session existent sur tout les pages de mon sites. non seulement sur accueil.aspx

    Merci

Discussions similaires

  1. [Cookies] Probleme session espace d'administration
    Par kodokan dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2006, 19h55
  2. [Cookies] Problemes sessions php
    Par Gmal dans le forum Langage
    Réponses: 5
    Dernier message: 01/08/2006, 13h13
  3. [Sécurité] Problème Session
    Par moscovisci dans le forum Langage
    Réponses: 5
    Dernier message: 12/04/2006, 16h35
  4. Probleme Session/requete SQL
    Par kolib dans le forum ASP
    Réponses: 4
    Dernier message: 14/06/2005, 16h23

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