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 :

Logger un utilisateur de force


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    ET ça sera bien fait pour lui.

    Bon, je sèche sur un truc, mais j'en arrive à me demander si c'est vraiment possible.

    Je voudrais logger un utilisateur dans mon site. Lors de son inscription (avec MemberShip) je lui envoie un mail avec un lien. Ce lien me sert à faire une opération dans la base de donéne pour valider son adresse mail.
    ensuite je le renvoi vers une page précise et je voudrais qu'il soit logger, puisque j'ai vérouiller la page seulement à ceux qui sont logger.

    Donc je cherche la méthode à employer pour simuler le comportment d'un controle Login.

    J'a regarder ce qu'il y avait avec MemberShip, Profile et j'ai rien trouvé.
    Ensuite je me suis tourner vers le contrôle Login mais je trouve pas les méthodes qu'il faut pour déclencher les évènements du contrôle.

    Merci pour votre aide.

  2. #2
    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
    Quel MembershipProvider utilises-tu ?

    Si c'est un provider custom, le plus simple est sans doute de créer une méthode similaire à ValidateUser qui prendrait en paramètre la clé présente dans le lien.

    Autre solution: overrider la méthode DecryptPassword du MembershipProvider pour décoder le password stocké en base, et l'utiliser pour appeler ValidateUser.

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    J'utilise un Provider qui est défini dans le Web.Config, je crois bien que c'est un provider Custom, puisque c'est moi qui lui ai donné son nom et ses paramètres.

    Par contre je ne comprends pas bien ce que tu m'explique avec le principe de OverRider une méthode. J'ai jamais fait.

    Mais surtout, ce que je ne comprends pas c'est où je peux trouver la méthode DecryptPassword et à quoi elle peut servir, partant du principe que j'ai désactivé l'utilisation du MD5.

    En fait, le truc, c'est que avec la méthode ValidateUser (qui à l'air de faire ce qu'il me faudrait) il faut lui envoyer en parametre le Password que je n'arrive pas à récupérer.

    Merci pour ton aide

  4. #4
    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
    J'utilise un Provider qui est défini dans le Web.Config, je crois bien que c'est un provider Custom, puisque c'est moi qui lui ai donné son nom et ses paramètres.
    C'est un provider "Custom" si tu as codé ta propre implémentation de MembershipProvider (en créant une classe héritée de MembershipProvider).
    Il en existe 2 prédéfinis dans le Framework:
    System.Web.Security.ActiveDirectoryMembershipProvider
    System.Web.Security.SqlMembershipProvider
    Tu utilises probablement un de ces 2 là...

    Par contre je ne comprends pas bien ce que tu m'explique avec le principe de OverRider une méthode. J'ai jamais fait.
    Euh... tu sais quand même que VB.NET est un langage orienté objet ? Je te suggère de revoir les notions de base de la POO . Ca veut dire "redéfinir dans une classe dérivée une méthode de la classe de base", pour changer son comportement.

    Mais surtout, ce que je ne comprends pas c'est où je peux trouver la méthode DecryptPassword et à quoi elle peut servir, partant du principe que j'ai désactivé l'utilisation du MD5.
    Ben si le password n'est pas crypté, tu dois pouvoir le récupérer directement dans la base pour l'utiliser avec ValidateUser. Par contre je ne connais pas le modèle de données exact, il faut que tu regardes dans la base.

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    Oui, je sais, il faut que je reprenne les fondamentaux de la POO, je croyais avoir compris les truc, mais le OverRide m'échappe pas mal.

    Sinon, pour le provider, non je n'ai pas codé l'implémentation, j'ai mis ça dans mon web.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <membership defaultProvider="MonMembership">
    <providers>
    <add connectionStringName="CS" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" enablePasswordRetrieval="true" enablePasswordReset="false" requiresQuestionAndAnswer="true" passwordFormat="Clear" requiresUniqueEmail="false" name="MonMembership" type="System.Web.Security.SqlMembershipProvider"/>
    </providers>
    </membership>
    Donc je sais pas trop si bien un custom ou pas. Je sais juste que dans l'interface de gestion du MemberShip il me le mets comme "personalisé".

    Mais un autre point me vient à l'esprit : tu dis ne pas connaitre le modèle de donnée exact, cela veut dire que tu n'a pas beaucoup travailler avec le MemberShip. Parce que ce que je voulais éviter c'est jsutement de faire une requête SQL pour taper dans la BDD. J'aurais voulu avoir une méthode directement faite par le FrameWork.
    D'abords pour des raisons de sécurité, ensuite aprce qu'un requête comme ça se fait avec une jointure deux ou trois table, selon les cas en prenant des UniqueIdentifier comme base de clause Where.

    Maintenant, si c'est pas possible, ben tant pis, je ferais la requête, mais je trouve que c'est pas trés propre.

    en tout cas, merci pour ton aide.

  6. #6
    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
    Sinon, il y a une méthode alternative, mais ça relève un peu de la bidouille:
    Quand tu envoies le mail de confirmation d'inscription d'inscription, je suppose que tu génères une clé unique qui est passée dans l'URL.
    Cette clé est probablement stockée dans la base de données.
    Il suffit donc de stocker le mot de passe (temporairement) dans la base en l'associant avec cette clé, de cette façon tu récupères le mot de passe en fonction de la clé de confirmation, et tu n'as plus qu'à l'utiliser pour l'appel à ValidateUser.

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon j'essaie de changer le titre, on verra bien

    Ben ça marche pas le changement de titre.

  8. #8
    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
    je viens de penser à un truc... ce serait pas possible en faisant un truc comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Context.User = New UserPrincipal(...)
    Par contre je vois pas exactement ce qu'il faudrait mettre à la place de "..."

  9. #9
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon, j'ai creusé un peu par là, mais sans résultat.

    C'est tout de même bizarre de ne pas pouvoir reproduire le principe du "souvenez vous de moi".
    Si je fais le contrôe Login avec cette case il va bien y arriver. Alors pourquoi j'arrive pas à avoir accès aux méthodes qui vont dérrière ?

  10. #10
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    J'ai encore creusé et je le suis rapellé que mon mafyoso avait eu une bonne idée pour deloguer un utilisateur : FormsAuthentication.SignOut()

    Et ben pas de bol un SignIn() n'existe pas.

    C'est quand même bizarre de pas trouver une truc qui va bien.

  11. #11
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon, alors personne n'a d'idée ?

Discussions similaires

  1. Java force les utilisateurs Mac à installer la barre d’outils Ask.com
    Par Amine Horseman dans le forum Général Java
    Réponses: 57
    Dernier message: 26/06/2015, 21h52
  2. logger mes utilisateurs
    Par ludo1c2 dans le forum Langage
    Réponses: 1
    Dernier message: 19/03/2014, 12h04
  3. [MySQL] Refuser accès utilisateur non logger
    Par nolookpass8 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/07/2012, 21h24
  4. Logger toutes les action utilisateur
    Par nikles007 dans le forum Sécurité
    Réponses: 2
    Dernier message: 23/05/2011, 14h09
  5. Déconnexion forcée d'un utilisateur
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/01/2008, 11h06

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