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 :

Un utilisateur unique multi application


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut Un utilisateur unique multi application
    Bonjour

    Toujours à fond dans le MemberShip, je cherche à faire un truc pas trés ortodoxe.
    Vu que j'ai plusieurs sites à gérer et qu'ils ont un lien entre eux, je voudrais pouvoir faire en sorte que lrosqu'un visiteur s'inscrit sur un site il utilise une pseudo unique et empêcher tout autre utilisateru sur tout autre site d'utiliser le même. Je sais, c'est pas trés cool, mais on a nos raisons.

    Donc, exemple d'illustration :
    sur site1 un visiteur s'incrit avec le login "toto"
    sur site2 un autre visiteur vient pour s'inscrire avec le login "toto", il sera rejeté en lui indiquant qu'il doit prendre une autre pseudo

    Mon souci est là : j'ai réussi à mettre en aplce l'unicité des pseudo, par application (par site donc) mais je ne trouve pas le moyen de le rendre unique, toutes applications confondues.

    Pouvez vous m'aider ?

  2. #2
    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
    Points : 8 734
    Points
    8 734
    Par défaut
    Si t'as une seule base pour tous tes sites, ça devrait être automatique
    Si t'as une base par site, faut faire une "moulinette" maison

  3. #3
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Oui, j'ai une seule base pour tous les sites.

    Mais non, ce n'est pas automatique parce qu'il enregistre une "application" par site et donc fait son contrôle sur le couple Application + User.

    Faire une moulinette, je veux bien, mais je sèche sur le rappel de l'évènement de login déjà utilisé.

    Merci pour ton aide.

  4. #4
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    En réfléchissant un poil, je me dis qu'il vaut mieux faire une moulinette.
    D'autant que c'est super simple et j'ai fait le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	Protected Sub CreateUserWizard1_CreatingUser(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles CreateUserWizard1.CreatingUser
    		Dim dt As DataTable = dmCS.ExecuterRequeteSimple("SELECT COUNT * FROM aspnet_Users WHERE UserName = '" & CreateUserWizard1.UserName & "'")
    		If dt.Rows(0).Item(0) <> 0 Then
     
    		End If
    	End Sub
    Ce qu'il me manque c'est ce que je mets dans le IF. Je n'arrive pas à trouver le code qui va renvoyer l'utilisateur sur le message qui va bien.

    Conclusion j'ai besoin d'aide pour trouve l'évènement ou la méthode pour le déclencher.

  5. #5
    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
    Points : 8 734
    Points
    8 734
    Par défaut
    Pourquoi t'as une colonne application?

  6. #6
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Ben je sais pas, c'est comme ça dans le MemberShip.
    Ton Provider est scotché à une application, je pense que Miscorsoft entends par là u site lorsque qu'on est sur le Web et autre chose lrosque qu'on est en client serveur.
    Visiblement on peut soit el gérer avec une base SQL soit avec le Active Directory.

    Mais surtout, c'est plus qu'une colonne, c'est une table aussi.

  7. #7
    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
    Points : 8 734
    Points
    8 734
    Par défaut
    Faut développer un MemberShip personnalisé alors

  8. #8
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    heu, c'est pas un peu gros comme boulot ça ?
    Juste pour capter un évènement.

  9. #9
    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
    Points : 8 734
    Points
    8 734
    Par défaut
    Pas trop
    Puis la moulinette, c'est pas top non plus.
    Imagine qu'un jour, tu rajoutes un nouveau site. Faudra faire tourner la moulinette pour tous les users existants.

    La colonne application te sert à rien et en plus elle te gêne, vire la

  10. #10
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Mais tu es sûr de savoir comment fonctionne le MemberShip ?
    Parce que on ne peux pas virer une colonne dans les tables. C'est une structure complète et cohérent sur laquelle s'appuie le FrameWork.

    Sinon, refaire le MemberShip, je suis pas sur que ce soit aussi simple. Il faut reprendre toutes les classes du FrameWork qui sont concernées.

    Mais, ne revenant sur le sujet, il ne me manque que l'évènement déclneché lorsqu'il détecte une login en double, rien de plus.

  11. #11
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Sinon, refaire le MemberShip, je suis pas sur que ce soit aussi simple. Il faut reprendre toutes les classes du FrameWork qui sont concernées.
    C'est pas très difficile, je l'avais fait il y a quelque temps. Il suffit de faire une classe dérivée de MembershipProvider. Je regarderai ce soir chez moi si je retrouve le code pour te montrer un exemple.

  12. #12
    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
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Mais tu es sûr de savoir comment fonctionne le MemberShip ?
    Parce que on ne peux pas virer une colonne dans les tables. C'est une structure complète et cohérent sur laquelle s'appuie le FrameWork.
    Si tu peux, tu fais ce que tu veux.
    Il te suffit d'implémenter les fonctions qui te sont vraiment utiles.
    Par exemple, j'ai fait un MemberShip qui se connectait à un WebService pour vérifier que le user était bien autorisé. Dans mon cas, c'était simple car il n'y avait pas de création ou modif de user mais ce n'est que qqs requêtes SQL à faire.

    Pour ton événement, aucune idée

  13. #13
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Ouais, je suis d'accord avec toi, on peux tout refaire si on veux. Mais m'attaquer à un si gros truc, alors que je n'ai qu'un besoins tout petit, je ne vois pas l'interêt.
    Maintenant, j'attends le code notre ami tomlev, pour voir coment je poourrais bidouiller des trucs dedans. Parce que, ça pourrait peut être répondre à pas mal de mes questions.

    Accessoirement, j'aimerias bien pouvoir mettre la main sur un gros tuto qui triate en profondeur du MemberShip, parce que y a pas mal de chose dedans, mais ça reste un poil nébuleux. Y a un truc bien dans les tuto du site, mais ça ne traite que de la mise en place simple, pas de fonction avancée ou de personalisation.

    En attendant j'ai trouvé une solution paliative qui fait ce que je souhaite, mais pas comme je le voudrais.

    Voici le code, des explciations à la suite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	Protected Sub CreateUserWizard1_CreatingUser(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs) Handles CreateUserWizard1.CreatingUser
    		Dim dt As DataTable = dmCS.ExecuterRequeteSimple("SELECT COUNT(*) FROM aspnet_Users WHERE UserName = '" & CreateUserWizard1.UserName & "'")
    		If dt.Rows(0).Item(0) <> 0 Then
    			e.Cancel = True
    			lblErreurDuplicate.Visible = True
    		End If
    	End Sub
    Enfa it, j'annule simplement l'évènemnet dans une condition. Ce qui me gêne, c'est le renvoi d'un message d'erreur. J'ai bricole un Label invisble que je rend visible, donc pas propre, donc ça me plait aps. Mais bon, ne soyons pas trop éxigeant.

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

Discussions similaires

  1. Singleton multi application
    Par Josy dans le forum Langage
    Réponses: 3
    Dernier message: 13/12/2006, 16h47
  2. Elever l'écran de bienvenue pr utilisateur unique
    Par beslam dans le forum Windows XP
    Réponses: 12
    Dernier message: 03/12/2006, 14h39
  3. [Sessions] Les sessions multi-applications
    Par brazza dans le forum Langage
    Réponses: 4
    Dernier message: 13/10/2005, 17h53
  4. Page personnalisée par l'utilisateur dans l'application
    Par Rodrigue dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/05/2005, 17h45
  5. Gestion des Utilisateurs depuis une application
    Par LLaurent dans le forum XMLRAD
    Réponses: 4
    Dernier message: 25/03/2003, 16h29

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