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

Silverlight Discussion :

Problème MembershipProvider personnalisé


Sujet :

Silverlight

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut Problème MembershipProvider personnalisé
    Bonjour tout le monde,

    Je souhaite utiliser une table personnet comme gestion de user pour mon application silverlight.

    J'ai Overridé ma méthode de mon MembershipProvider ValidateUser, jusqu'ici pas de soucis ma méthode est bien appellé je renvoi bien true quand le login est bon.

    Malheureusement la méthode de callback sur l'appel me renvoi systhématiquement LoginSuccess = False :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //Demande d'identification
            private void DemandLogin(object obj)
            {
                WebContext.Current.Authentication.Login(new LoginParameters(Identifiant, Pass),
                                                        LoginOperation_Completed, null);
            }
     
            private void LoginOperation_Completed(LoginOperation obj)
            {
                if (!obj.LoginSuccess)
                    MessageBox.Show("Mauvais identifiants");
                else
                    identification.DialogResult = true;
            }
    Comment puis-je trouvé d'où le problème provient ou avez vous une idée sur ce soucis?

    Merci d'avance.

    Cordialement
    Nicolas.

  2. #2
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Hello,

    Quelques questions dans l’hypothèse ou tu travaille tjr avec RIA services :

    1. Quand tu es en Debug tu passes bien par la méthode de validation ?
    2. tu as bien renseigné la méthode d'authentification au contexte( context.Authentication = new FormsAuthentication()
    3. Tu as bien créé un domain service d'authentification ?


    Très bonne lecture (si c'est bien du RIA ) :http://www.silverlightshow.net/items...orization.aspx

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    Merci pour ta réponse.

    1) En effet je passe dans la méthode overridé ValidateUser et renvoi bien True.

    2) Dans App.xaml.cs j'ai bien précisé webContext.Authentication = new FormsAuthentication();

    3) J'ai crée une application Bussiness et à ce que j'ai pu lire et voir le domain service d'authentification à l'air d'être inclut en natif dans le modèle.

    Je vais lire ce que tu m'as fourni. Merci.

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    J'ai un peu avancé...

    En fait il me manquait celà dans web.config : (Je ne sais même pas à quoi celà sert )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <profile>
          <properties>
            <add name="FriendlyName"/>
          </properties>
        </profile>
    Dans maintenant la méthode de callback (LoginOperation_Completed) de login ne se lance plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //Demande d'identification
            private void DemandLogin(object obj)
            {
                WebContext.Current.Authentication.Login(new LoginParameters(Identifiant, Pass),
                                                        LoginOperation_Completed, null);
            }
     
            private void LoginOperation_Completed(LoginOperation obj)
            {
                if (!obj.LoginSuccess)
                    MessageBox.Show("Mauvais identifiants");
                else
                    identification.DialogResult = true;
            }
    celà veut t'il dire que le domain service d'authentification ne répond pas?

    Je suis un peu perdu, merci pour votre aide.

  5. #5
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    En rajoutant cette ligne tu ajoute une propriété au "profile" de l'utilisateur connecté... et seulement une fois connecté. Donc je pense pas que cela vienne de la

    Je ne suis pas sur que le service d'authentification soit inclut de base car dans tout les exemples il faut le rajouter (notamment MSDN) et je ne vois pas comment cela pourrait fonctionner autrement puisque c'est en rajoutant ce service que le code faisant le "liant" est généré côté client et serveur

    Tu as bien suivi chacune des étapes une à une ?
    Essayes aussi de bien vider le cache à chaque lancement(on ne sait jamais !)

    Une autre lecture intéressante : http://msdn.microsoft.com/en-us/libr...53(VS.91).aspx

    Bon courage !

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    Pourtant sans aucune manipulation j'ai bien le fichier : AuthenticationService.cs dans le dossier services de mon projet web.

    Celà veut bien dire que j'ai un domain service d'authentification qui traine non?

    Voilà le contenu si ca peut aider :

    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
    namespace **********_Silverlight.Web
    {
        using System.Security.Authentication;
        using System.ServiceModel.DomainServices.Hosting;
        using System.ServiceModel.DomainServices.Server;
        using System.ServiceModel.DomainServices.Server.ApplicationServices;
        using System.Threading;
     
        /// <summary>
        /// RIA Services DomainService responsible for authenticating users when
        /// they try to log on to the application.
        ///
        /// Most of the functionality is already provided by the base class
        /// AuthenticationBase
        /// </summary>
        [EnableClientAccess]
        public class AuthenticationService : AuthenticationBase<User> { }
    }
    Est ce que ceci semble correct car pour l'instant c'est comme si je n'avais aucune réponse du service d'authentification?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    En fait lors du debuggage je remarque que je passe toujours dans mon override de la méthode ValidateUser, et si je retoune true je ne rentre jamais dans la méthode de callback (LoginOperation_Completed) et si je passe False j'y rentre bien avec le parametre obj.LoginSuccess à False.

    Etonnant!

    Du coup si je rentre bien dans la méthode overridé ValideUser c'est que mon Domain service d'authentification est présent non?

    Merci pour votre aide j'ai l'impression de tourner en rond là

  8. #8
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Hello,

    Je ne vois pas trop comment t'aider sans en voir plus de ton code...
    Est-ce que tu as une solution que tu pourrais dévoiler au grand public pour que je puisse tester ?

    ++

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    Aucun soucis comment je procède pour te l'envoyer?


    Merci de m'accorder du temps en tout cas.

  10. #10
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Tu peux la mettre en ligne (envoie moi le lien par MP) !

  11. #11
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Hello,

    Je viens de trouver le temps de tester ton appli et chez moi cela fonctionne très bien !

    Je n'avais pas ta DB alors j'ai remplacé le corps des méthodes de la classe Personnel pour qu'elle renvoient toujours la même personne... Peut être que le problème vient de la ? Ou peut être que tu testais sur une ancienne version gardée dans le cache du navig (tu testes avec IE ? Cela marche mal avec chrome par exemple) ....

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    Merci pour les essais que tu as fait.

    Je suis sur IE.

    J'ai refait un nouveau projet mais toujours exactement le même soucis je ne comprend pas.

    En effet pour préciser, dans ma surcharge de la méthode ValidateUser dans AppliMembershipProvider je retourne en dur True.
    Et j'observe que le résultat est en fait un délai d'au moins 30 secondes pour rentrer dans la méthode de Callback de réponse de la méthode WebContext.Current.Authentication.Login et la valeur de !obj.LoginSuccess est finalement False.

    Si je passe False dans ValidateUser() du coup j'ai retour immédiat et correct dans la méthode de Callback (False).

    Si je retourne True dans ValidateUser() la base de donnée et ma strucuture de user ne devrais pas rentrer en compte non donc l'erreur ne peut pas etre lié à ceci.

    Je reste dans le flou si quelqu'un aurai une piste je suis très largement preneur car ca commence à m'exaspérer je tourne en rond

  13. #13
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Hello,

    Je trouve cela normal que !obj.LoginSuccess soit égal à False si le login est bon...

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    Citation Envoyé par jmix90 Voir le message
    Hello,

    Je trouve cela normal que !obj.LoginSuccess soit égal à False si le login est bon...
    En effet, désolé j'ai fait une erreur de copie ou je me suis mal exprimé. je voulais dire obj.LoginSuccess = false et que donc le test if !obj.LoginSuccess = True.

    C'est fou que cela marche parfaitement chez toi avec le même code bien que tu n'ai pas acces à la base je ne vois pas en quoi cela est différent lorsque je renvoi return true dans ValidateUser, la base ou mes entity ne rentre pas en considération à ce moment là.

    Un problème directement au niveau de RIA Service peut etre?

    Je vais à tout hasard tenter une gestion d'utilisateur avec RIA Services et le memberprovider de base d'asp.net pour voir au moins une fois le service d'authentification de silverlight fonctionner...

Discussions similaires

  1. problème caption personnalisé
    Par ranjo dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 16/02/2012, 07h31
  2. WebApplication: Problème controle personnalisé
    Par ghost942 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/11/2010, 09h18
  3. Problème PageStatePersister personnalisé
    Par Marsupilami_00 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/04/2010, 09h02
  4. [Custom Tags] problème tag personnalisé
    Par emsi2009 dans le forum Taglibs
    Réponses: 0
    Dernier message: 21/08/2009, 20h05
  5. problème filtre personnalisé
    Par D.Mounir dans le forum Excel
    Réponses: 1
    Dernier message: 03/05/2007, 17h16

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