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 :

Gestion des cookies asp.net MVC 3


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut Gestion des cookies asp.net MVC 3
    Bonjour,

    Je suis sur un projet en asp.net MVC 3 et j'utilise une bdd sql express 2008.
    Je dois faire la partie authentification.

    Ma question est simple : comment gère t on les cookies ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    string tampon = SecureDonnee.Crypter(<mes données a crypter son ici>);
     
    Response.Cookies["InfoUtilisateur"].Value = tampon;
    Response.Cookies["InfoUtilisateur"].Expires = DateTime.Now.AddDays(1d);
    Or quand je change de contrôleur, Response est null (pire que ça, ce bout de code ne fonctionne pas :'( mais en faisant response.cookie.add() avec un httpcookie que je créé cela était quand même null).
    Ce que je veux c'est créer un cookie contenant les infos de "tampon" et pouvoir m'en re-servir partout dans l'application.
    Si vous avez d'autre idée je suis preneur.

    S'il vous plait j'ai besoin d'aide !!

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Où est-ce que tu places le code ci-dessus ? Dans une vue, un controleur ... ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Je suis dans mon controler Login juste après ma vu me permettant de me logger.
    Voici le code entier.

    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
     
    public ActionResult SeConnecter(FormCollection formCollection)
            {
                try
                {
                    tb_utilisateur utilisateur = new tb_utilisateur();
                    string log = formCollection["login"];
                    string mdp = formCollection["password"];
                    utilisateur = DataContext.BddUtilisateur.FirstOrDefault(u => u.util_login == log);
                    if (utilisateur != null && utilisateur.util_mot_de_passe == mdp)
                    {
                        string tampon = SecureDonnee.Crypter(utilisateur.util_nom + ";" + utilisateur.util_prenom + ";" + utilisateur.util_role + ";" + utilisateur.util_groupe + ";" + utilisateur.util_cle);
     
                        Response.Cookies["InfoUtilisateur"].Value = tampon;
                        Response.Cookies["InfoUtilisateur"].Expires = DateTime.Now.AddDays(1d);
     
                        return RedirectToAction("Index", "Home");
                    }
                    else
                    {
                        return RedirectToAction("Probleme");
                    }
                }
                catch (Exception)
                {
                    return RedirectToAction("Probleme");
                }
            }

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Dsl pour le double post.

    Je précise que je n'ai aucune expérience dans les cookies.
    Je ne me vexerai pas si tu me dis que ce n'est pas comme ça qu'il faut faire

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ok merci pour le code. Je voulais juste vérifier que tu sois bien dans le Controleur ;)

    Il faut d'abord créer ton cookie et l'ajouter dans la liste des cookies :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HttpCookie cookie = new HttpCookie("tonCookie");
    cookie.Value = "value blabla ...";
     
    Response.Cookies.Add(cookie);

    Est-ce que ça change quelque chose de ton côté ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    non ça change rien vu que quand je sors de ce controleur mon cookie est supprimé
    Response vaut null partout

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Sinon, peut on utiliser sa propre base de donnée (sql express 2008) pour faire la gestion des memberships, des roles, et des groupes ?
    Car si oui ce serait génial

  8. #8
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Il faut utiliser Request et non Response pour récupérer ton cookie

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Dans mon controler login je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    HttpCookie cookie = new HttpCookie("InfoUtilisateur", tampon);
                        cookie.Expires = DateTime.Now.AddDays(1d);
     
                        Response.Cookies.Add(cookie);
    et dans ma class qui gère les droit je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string _infoSecure = Request.Cookies["InfoUtilisateur"].Value;
    Or Request vaut aussi null :'(

    Tu sais si on peut utiliser une base de données pour les membership, role et groupe ?

  10. #10
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Dans ta classe qui gère les droits, comment est-ce que tu récupères le contexte HTTP ?

    Sinon pour répondre à ton autre question, oui il est tout à fait possible d'utiliser une base de données pour gérer les droits et tout. Voici 2 liens qui pourront t'intéresser :

    http://msdn.microsoft.com/en-us/libr...(v=vs.98).aspx

    http://www.asp.net/web-forms/tutoria...-sql-server-cs

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Oula, je ne passe pas le contexthttp !!!

    Maintenant que tu le dis ça parait logique. Je débute, je vais regarder comment faire.
    En tout cas merci de ton aide.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Ou puis je l'instancier pour y avoir acces partout ?

  13. #13
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    En as-tu réellement besoin de partout ?

    Pour ce cas bien précis, tu peux par exemple rajouter une propriété qui va contenir ton contexte HTTP, dans la classe de gestion des droits.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    L'idéale serait que j'ai une trace de l'utilisateur en cours avec juste son id et son pseudo.
    Je pensé que l'on pouvait créer simplement un cookie avec un durée de vie de 1jours et s'en servir partout dans l'application.

    As tu une idée de ce que je pourrais faire? J'ai testé avec la session mais elle se reset à chaque changement de contrôler (sans doute une fausse manip de ma part).

  15. #15
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Que veux-tu faire exactement ?

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Je veux (voudrais ^^) que un utilisateur se connecte sur mon application, il d'identifie (le code pour vérifier qu'il existe dans ma bdd externalisé existe et fonctionne), puis je veux sauvegarder quelque part (cookie, session, ...) son identifiant (cle bdd) et son pseudo.

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    Un peu d'aide svp.
    Comment faire pour partager une ressource contenant l'id (int) et le pseudo (string) dans tout mon application ?

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 7
    Points
    7
    Par défaut
    re bonjour,

    J'ai vu qu'il existé des variable d'application.
    D'après ce que j'ai lu cela pourrais me convenir.
    Quelqu'un peut m'en dire plus ?

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

Discussions similaires

  1. Comment activer la gestion des roles ASP.NET
    Par Afaf001 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/08/2013, 16h59
  2. Gestion des Dropdownlist ASP.NET C#
    Par aitBaamran dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/12/2012, 09h45
  3. gestion des droits asp.net c#
    Par fido1 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/09/2008, 13h30
  4. Gestion des Dropdownlist ASP.NET C#
    Par JOLY dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/08/2008, 14h55

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